0

アプリケーションには 2 つのボタンがあります。1 つは Google Voice を開始するためのもので、もう 1 つはアプリケーションを終了するためのものです。ただし、音声ボタンを押しても、終了ボタンを押すまで何もしません。そのため、アプリは終了しますが、Google Voice が起動します。

public void onClick(View v) {

    switch(v.getId()){
        case R.id.btnDisable:{
            //Set the ringer to normal
            audio.setRingerMode(2);
            //Close the text-to-speech engine 
            tts.shutdown();
            //Welcome.bt.disable();
            activity.finish();
            onDestroy();
            break;
        }

        case R.id.btnVoice: {
            System.out.println ("pressed");
            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en_US");

            try {
                startActivityForResult(intent, RESULT_SPEECH);
            } catch (ActivityNotFoundException a) {
                Toast t = Toast.makeText(getApplicationContext(),
                        "Opps! Your device doesn't support Speech to Text",
                        Toast.LENGTH_SHORT);
                t.show();
            }
            break;
        }
    }
}
4

3 に答える 3

1

XML 属性を使用するかandroid:onClick、ボタンに onClickListener を適用する必要があります。これらは両方とも、onClick を処理するための標準的な方法です。

======== XML での onClick ========

XML の場合:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="someMethodName"
    />

アクティビティで:

public void someMethodName(View v){
    //Do something
}

======== onClickListener ========

XML で:

<Button
    android:id="@+id/someID"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

アクティビティで:

Button myButton = (Button) findViewById(R.id.someID);
myButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //Do something

        }
    });

これら 2 つの方法に違いがあることは実際には見たことがありません。これらのいずれか (または両方) を使用することをお勧めします。どちらも onClicks を処理する方法として受け入れられています。

于 2013-05-20T01:18:02.507 に答える
1

このサンプルを試してみてください。これは適切に機能し、xml とファイルに従って名前を調整します。その部分で管理します。

public class FindEventsActivity extends Activity implements OnClickListener{

//lots of other code up here
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);             
    setContentView(R.layout.adds);

    findViewById(R.id.bAdd).setOnClickListener(this);
    findViewById(R.id.bSub).setOnClickListener(this);
}

public void onClick(View v) {

    switch(v.getId()){
        case R.id.bAdd:
            //Set the ringer to normal
            System.out.println("Button 1");
            break;

        case R.id.bSub:
            System.out.println ("Button 2");                
            break;
    }
}
}

それでも問題が解決しない場合は、さらにコードを共有してください。

これが役に立ち、あなたの仕事を楽しんでくれることを願っています

于 2013-05-19T23:52:09.623 に答える
0

無効化ボタン コードの終了 "}" の下にブレークを配置してみてください。

于 2013-05-19T22:12:06.737 に答える