Предоставление данных для другой деятельности не работает на самом деле - PullRequest
0 голосов
/ 05 июля 2018

Что такое код:
С помощью своего кода я могу открыть микрофон, поговорить с ним и посмотреть результат.

Текущая ситуация
Прямо сейчас, если я говорю в микрофон, я вижу выход и прыгаю прямо в другой деятельности.

Требование
Я хочу взять вывод в упражнении, но прежде чем писать много, я покажу вам код.

Mainactivity.java

private TextView voiceInput;
private ImageView speakButton;
private final int REQ_CODE_SPEECH_INPUT = 100;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    voiceInput = (TextView) findViewById(R.id.voiceInput);
    speakButton = (ImageView) findViewById(R.id.btnSpeak);

    speakButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            askSpeechInput();
        }
    });
}

// Showing google speech input dialog

private void askSpeechInput() {
    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());
    intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Sprechen Sie was ein");
    //tent.putStringArrayListExtra("result",resultat);
    try {
        startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
    } catch (ActivityNotFoundException a) {

    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case REQ_CODE_SPEECH_INPUT: {
            if (resultCode == RESULT_OK && null != data) {
                Intent intent=new Intent(this,Zweites.class);
                ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                voiceInput.setText(result.get(0));
                intent.putStringArrayListExtra("resultat",result);
                //ActivityZweites wird gestartet
                startActivity(intent);
            }
            break;
        }

    } }} <br>

В этом я получил следующую проблему:

    if (resultCode == RESULT_OK && null != data) {

        ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        //Ausgabe in andere Activity
        voiceInput.setText(result.get(0));
        Intent intent=new Intent(this,Zweites.class);
        intent.putStringArrayListExtra("resultat",result);
        //ActivityZweites wird gestartet
        startActivity(intent);
    }
    break;
}

Там выводится голосовой ввод:

voiceInput.setText(result.get(0));

А потом он прыгает в активность.
Как я могу получить этот вывод в упражнении без предварительного просмотра вывода и перехода к другому занятию?

Я пробовал кое-что, но не нашел решения, как решить эту проблему.
Ребята, у вас есть идеи?

С уважением

1 Ответ

0 голосов
/ 05 июля 2018

Если вы просто хотите передать тот же текст своему намерению, который вы отображаете в TextView, обменяйте

intent.putStringArrayListExtra("resultat",result);

с

intent.putExtra("resultat", result.get(0));

Затем, в вашем Zweites упражнении, вы можете получить строку примерно так:

Intent intent = getIntent();
String text = intent.getStringExtra("resultat");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...