0

我的应用程序中有两个按钮,一个是启动 Google Voice,另一个是退出应用程序。但是,当我按下语音按钮时,它不会做任何事情,直到我按下退出按钮之后。因此,应用程序退出,但随后 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

试试这个示例,这可以正常工作,根据您的 xmls 和文件调整名称,您将使用该部分进行管理

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 回答
1

您应该使用android:onClickXML 属性,或者将 onClickListener 应用于您的按钮。这些都是处理 onClicks 的标准方法。

======== 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

        }
    });

我真的从未见过这两种方法有任何差异,我建议使用其中一种(或两种)。两者都是公认的处理 onClicks 的方式。

于 2013-05-20T01:18:02.507 回答
0

尝试将中断放在禁用按钮代码的结束“}”下

于 2013-05-19T22:12:06.737 回答