其他活动中的输出无效

时间:2018-07-10 18:54:46

标签: android android-layout android-studio android-intent

我的项目
在麦克风中输入,请参阅第二活动中的输出。

我在哪里停留?
我实际上可以做的是在麦克风中讲话-查看输出并直接在第二活动中跳转。
但是我想要的是在第二个活动中看到输出。

我的MainActivity.java

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();
            }
        });
    }

    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) {

                    ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                    voiceInput.setText(result.get(0));
                    Intent intent=new Intent(this,Zweites.class);
                    intent.putExtra("resultat", result.get(0));
                    startActivity(intent);
                }
                break;
            }

        } }}

我的SecondActivity.java

public class SecondActivity extends AppCompatActivity {

    ArrayList resultat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zweites);
        Intent intent = getIntent();
        String text = intent.getStringExtra("resultat");

    }
    }

如果您想知道SecondActivity.xml在我想要输出的地方看起来如何:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SecondActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="12dp"
        android:text="You said that?"
        android:textSize="25sp" />

    <Button
        android:id="@+id/Yes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="15dp"
        android:layout_marginTop="127dp"
        android:onClick="buttonClick"
        android:text="Yes"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="193dp" />

    <Button
        android:id="@+id/No"
        android:layout_width="92dp"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignTop="@+id/zweiteja"
        android:layout_marginEnd="21dp"
        android:onClick="buttonClick8"
        android:text="Nein"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.761"
        app:layout_constraintStart_toStartOf="parent"
        tools:layout_editor_absoluteY="193dp" />

    <TextView
        android:id="@+id/textviewsecondactivity"
        android:layout_width="329dp"
        android:layout_height="63dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="53dp"
        android:textSize="25sp" />

</RelativeLayout > <br>

以下是图片的实际外观:
https://i.stack.imgur.com/OlfSN.png

我想要什么
https://i.stack.imgur.com/HkrXT.png

如果您需要更多信息,请告诉我。
我希望你们知道我的意思。

1 个答案:

答案 0 :(得分:0)

将此代码添加到第二个活动的oncreate函数中

.....
String text = intent.getStringExtra("resultat"); 
TextView tv = (TextView) findViewById(R.id.textviewsecondactivity);
tv.setText(text);