正在将 Android 语音识别文本发送给另一个 activity
Sending Android speech recognition text to another activity
我目前正在尝试在我的 android 应用程序中使用语音识别。本质上,我有一个主 activity、一个加载 activity 和一个文本显示 activity。当按下 main activity 中的按钮时,麦克风将打开,然后它会转换到加载 activity,其中显示一个带有跳动点的 gif,表明您正在对着麦克风讲话。经过一定的静默后,它将文本发送到测试显示器 activity。现在,我将其设置在我的主 activity 有一个按钮的位置,按下该按钮会将您带到加载屏幕。我假设激活语音识别的代码将进入主 activity,但我不确定如何将收集的数据发送到我的文本显示 activity。如果有任何不清楚的地方,请告诉我。我的活动代码如下。
主要activity
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);
}
}
加载中activity
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() {
}
}
文字显示activity
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);
}
}
通过应用程序共享数据 class,或者,您可以将数据保存到 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");
//...
}
}
希望这能给您一些帮助
我目前正在尝试在我的 android 应用程序中使用语音识别。本质上,我有一个主 activity、一个加载 activity 和一个文本显示 activity。当按下 main activity 中的按钮时,麦克风将打开,然后它会转换到加载 activity,其中显示一个带有跳动点的 gif,表明您正在对着麦克风讲话。经过一定的静默后,它将文本发送到测试显示器 activity。现在,我将其设置在我的主 activity 有一个按钮的位置,按下该按钮会将您带到加载屏幕。我假设激活语音识别的代码将进入主 activity,但我不确定如何将收集的数据发送到我的文本显示 activity。如果有任何不清楚的地方,请告诉我。我的活动代码如下。
主要activity
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);
}
}
加载中activity
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() {
}
}
文字显示activity
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);
}
}
通过应用程序共享数据 class,或者,您可以将数据保存到 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");
//...
}
}
希望这能给您一些帮助