【问题标题】:Sending Android speech recognition text to another activity将 Android 语音识别文本发送到另一个活动
【发布时间】:2020-04-15 15:13:53
【问题描述】:

我目前正在尝试在我的 Android 应用中使用语音识别。本质上,我有一个主要活动、一个加载活动和一个文本显示活动。当按下主活动中的按钮时,麦克风会打开,然后它会转换到加载活动,在该活动中它会显示一个带有弹跳点的 gif,表示您正在对着麦克风讲话。经过一定程度的沉默后,它将文本发送到测试显示活动。现在我将它设置在我的主要活动有一个按钮的地方,按下该按钮会将您发送到加载屏幕。我假设我的激活语音识别的代码将进入主要活动,但我不确定如何将收集到的数据发送到我的文本显示活动。如果有任何不清楚的地方,请告诉我。我的活动代码如下。

主要活动

package app.test;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity {

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

        ImageButton button = (ImageButton) findViewById(R.id.imageButton2);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    openLoading();
            }
        });
    }

    public void openLoading(){
        Intent intent = new Intent(this, Loading.class);
        startActivity(intent);
    }


}

加载活动

package app.test;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;

import java.util.Locale;

public class Loading extends AppCompatActivity {
private ImageView gifImageView;

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

        gifImageView=findViewById(R.id.imageView2);

        Glide.with(Loading.this)
                .load(R.drawable.loading)
                .into(gifImageView);
    }

    @Override
    public void onBackPressed() {

    }
}

文本显示活动

package app.test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

import org.w3c.dom.Text;

public class Tweet extends AppCompatActivity {
    private TextView txtResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tweet);
        txtResult = (TextView) findViewById(R.id.textView);
    }

}

【问题讨论】:

    标签: java android speech-recognition text-to-speech


    【解决方案1】:

    通过 Application 类共享数据,或者,您可以将数据保存到 Bundle 中并 打电话

    Bundle b = new Bundle();
           b.putExtra("data", {your data collection}); 
    intent.putExtra("b", b);
    startActivity(intent);
    

    因此您可以在此处检索您的数据

    protected void onCreate(Bundle b) {
        Intent dataIntent = getIntent();
        if (dataIntent != null) {
            Bundle b = dataIntent.getExtra("b");
            //...
        }
    }
    

    希望能给你一些帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 2023-03-08
      • 2011-05-10
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2014-09-06
      相关资源
      最近更新 更多