我正在尝试添加一个麦克风按钮,用户可以在其中单击它,并且可以提示用户进行语音输入。然后,语音输入将转换为String并显示在我的Android应用程序的TextView中。现在,可以提示语音输入,但是转换后的字符串将不会显示在我的TextView中,并且没有崩溃或logcat。只是它不会显示在我的TextView中。所有这些都是在扩展Fragment的类中发生的。
下面是我的麦克风按钮的代码:-
//Button to activate voice recognition
microphonebutton = (ImageButton) view.findViewById(R.id.button_microphone);
microphonebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(intent, 10);
} else {
Toast.makeText(getActivity().getApplicationContext(), "Your device does not support speech input !",Toast.LENGTH_SHORT).show();
}
}
});
onActivityResult方法:-
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case 10:
if (resultCode == Activity.RESULT_OK && data != null) {
ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
texttotranslate.setText("");
texttotranslate.setText(result.get(0), TextView.BufferType.EDITABLE);
}
break;
}
}
我从youtube上的教程中获得了这些代码,对于演示该教程的人来说似乎工作得很好。
答案 0 :(得分:0)
您在onActivityResult方法中有一个错字。在开关中,您将两次轻敲resultCode。首先,您应该检查requestCode。 requestCode是您在案例10中在startActivityForResult中定义的代码。