Я хочу изменить этот переключатель так, чтобы вместо того, чтобы нажимать кнопки, мои действия запускались, произнося имя связанного фрукта. Например, класс 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")) {