我的应用程序中有两个按钮,一个用于启动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;
}
}
}
答案 0 :(得分: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;
}
}
}
如果您仍然没有看到问题,请分享更多代码。
希望这有助于并享受您的工作
答案 1 :(得分:1)
您应该使用android:onClick
XML属性,或者将onClickListener应用于您的按钮。这些都是处理onClicks的标准方法。
======== onClick in XML ========
在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的可接受方式。
答案 2 :(得分:0)
尝试将中断放在禁用按钮代码<} p的结束“}”下