#java #android
#java #Android
Вопрос:
Создав этот метод, я пытался преобразовать строку (strSpeech2Text) в символы и назначить их каждому для T1, T2 и т.д. текстовых представлений.
Если я не пытаюсь повторно использовать foreach, чтобы сделать это, я получаю, что каждому текстовому представлению присваивается целое слово. Итак, подпись работает..
Что в этом плохого?
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case RECOGNIZE_SPEECH_ACTIVITY:
if (resultCode == RESULT_OK amp;amp; null != data) {
ArrayList<String> speech = data
.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
String strSpeech2Text = speech.get(0);
grabar.setText(strSpeech2Text);
TextView T1;
T1 = (TextView) findViewById(R.id.TIRADA0);
TextView T2;
T2 = (TextView) findViewById(R.id.TIRADA1);
TextView T3;
T3 = (TextView) findViewById(R.id.TIRADA2);
TextView T4;
T4 = (TextView) findViewById(R.id.TIRADA3);
//String v;
String a = strSpeech2Text;
int n = 0;
for (TextView i : Arrays.asList(T1, T2, T3, T4)) {
Character v = a.charAt(n);
i.setText(Character.toString(v));
n ;
}
}
break;
default:
break;
}
}
Ответ №1:
Попробуйте это вместо этого. Я не тестировал это, но для меня это выглядит хорошо:
ArrayList<TextView> textViews = Arrays.asList(T1, T2, T3, T4);
for (int i=0; i<textViews.size() amp;amp; strSpeech2Text.length>i; i ) {
textViews.get(i).setText(strSpeech2Text.substring(i,i 1));
}