我想改变这个开关,以便不是点击按钮,而是通过说出相关水果的名称来启动我的活动。例如,Apple类将通过说出“Apple”这个词来发布。我该如何重写这个开关?到目前为止,我所做的所有尝试似乎都没有奏效。任何答案将不胜感激。谢谢!
package com.example.speech;
import com.example.speech.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
public class MainActivity extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// find our buttons and set onClickListeners for all
ImageButton one = (ImageButton)findViewById(R.id.one);
ImageButton two = (ImageButton)findViewById(R.id.two);
ImageButton three = (ImageButton)findViewById(R.id.three);
ImageButton four = (ImageButton)findViewById(R.id.four);
ImageButton five = (ImageButton)findViewById(R.id.five);
ImageButton six = (ImageButton)findViewById(R.id.six);
one.setOnClickListener(this);
two.setOnClickListener(this);
three.setOnClickListener(this);
four.setOnClickListener(this);
five.setOnClickListener(this);
six.setOnClickListener(this);
}
public void onClick(View v) {
// do something based on the button that was clicked
switch(v.getId()) {
case R.id.one:
// create an intent indicating we want
// to start the activity.
Intent i = new Intent(this, Apple.class);
// start the activity based on the Intent
startActivity(i);
finish();
break;
case R.id.two:
Intent j = new Intent(this, Orange.class);
// start the activity based on the Intent
startActivity(j);
finish();
break;
case R.id.three:
Intent k = new Intent(this, Banana.class);
// start the activity based on the Intent
startActivity(k);
finish();
break;
case R.id.four:
Intent l = new Intent(this, Grape.class);
// start the activity based on the Intent
startActivity(l);
finish();
break;
case R.id.five:
Intent m = new Intent(this, Strawberry.class);
// start the activity based on the Intent
startActivityForResult(m, 0);
finish();
break;
case R.id.six:
Intent n = new Intent(this, Kiwi.class);
// start the activity based on the Intent
startActivity(n);
finish();
break;
default:
finish();
}
};
}
这是处理语音活动结果的正确方法吗?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == VOICE_RECOGNITION_REQUEST_CODE)
//If Voice recognition is successful then it returns RESULT_OK
if(resultCode == RESULT_OK) {
ArrayList<String> textMatchList = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
if (!textMatchList.isEmpty()) {
// If first Match contains the word 'apple'
// Then start the apple activity.
if (textMatchList.get(0).contains("apple")) {
// create an intent indicating we want
// to start the activity.
Intent i = new Intent(this, Apple.class);
// start the activity based on the Intent
startActivity(i);
finish();
break;
我觉得这条线后有些东西不见了......
if (textMatchList.get(0).contains("apple")) {
答案 0 :(得分:0)
Here是有关如何使用Android语音识别的示例教程。您需要在OnActivityResult中处理搜索结果并对apple,banana,grape等进行字符串匹配..如果找到字符串匹配,则启动相应的活动!