- Forum-Beiträge: 1
23.06.2018, 15:22:55 via Website
23.06.2018 15:22:55 via Website
Hallo zusammen
Ich arbeite gerade an einer Spracherkennung.
Die Mainactivity sieht wie folgt aus:
package com.example.meinpc.spracherkennung; import android.content.ActivityNotFoundException; import android.content.Intent; import android.speech.RecognizerIntent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import org.w3c.dom.Text; import java.util.ArrayList; import java.util.Locale; public class MainActivity extends AppCompatActivity { 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, "Hi speak something"); 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) { ArrayList<String> result = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); voiceInput.setText(result.get(0)); Intent intent=new Intent(this,ZweitesActivity.class); intent.putStringArrayListExtra("result",result); startActivity(intent); } break; } } } }
Der folgende Codeabschnitt ist für die Ausgabe zuständig:
@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) {ArrayList<String> result = data .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); voiceInput.setText(result.get(0)); Intent intent=new Intent(this,ZweitesActivity.class); intent.putStringArrayListExtra("result",result); startActivity(intent); } break; } } }
Nun will ich, dass er den Output in einer anderen Activity startet und nicht alles in einer.
Also habe ich eine zweite Activity erstellt und dort den verantwortlichen Code eingefügt, vergeblich.
Meine Frage:
Wie kriege ich es hin, dass der Output der Spracheingabe in einer anderen Activity angezeigt wird?
Lieber Gruss
,
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.