Android 如何检查在其他活动中单击的按钮?
我正在做的程序有一个语言按钮,点击按钮后,它将指向其他活动,并显示3个语言按钮,点击其中一个按钮后,按钮应将代码发送回主活动,然后使用开关确定代码并分别播放音频。这是我的密码,请看一下: 主要活动:Android 如何检查在其他活动中单击的按钮?,android,function,button,Android,Function,Button,我正在做的程序有一个语言按钮,点击按钮后,它将指向其他活动,并显示3个语言按钮,点击其中一个按钮后,按钮应将代码发送回主活动,然后使用开关确定代码并分别播放音频。这是我的密码,请看一下: 主要活动: Button languages = findViewById(R.id.languages); languages.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view
Button languages = findViewById(R.id.languages);
languages.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
Intent intent = new Intent (CameraActivity.this, LanguageSelection.class);
startActivityForResult(intent,1);
}
});
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_language_selection);
Button english = findViewById(R.id.english);
Button malay = findViewById(R.id.malay);
Button chinese = findViewById(R.id.chinese);
english.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 0);
setResult(0,intent);
startActivity(intent);
}
});
malay.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 1);
setResult(1,intent);
startActivity(intent);
}
});
chinese.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 2);
setResult(2,intent);
startActivity(intent);
}
});
}
语言选择代码:
Button languages = findViewById(R.id.languages);
languages.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
Intent intent = new Intent (CameraActivity.this, LanguageSelection.class);
startActivityForResult(intent,1);
}
});
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_language_selection);
Button english = findViewById(R.id.english);
Button malay = findViewById(R.id.malay);
Button chinese = findViewById(R.id.chinese);
english.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 0);
setResult(0,intent);
startActivity(intent);
}
});
malay.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 1);
setResult(1,intent);
startActivity(intent);
}
});
chinese.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent intent = new Intent (LanguageSelection.this, CameraActivity.class);
intent.putExtra("langCode", 2);
setResult(2,intent);
startActivity(intent);
}
});
}
在主活动中切换
@UiThread
protected void showResultsInBottomSheet(List<Recognition> results) {
if (results != null && results.size() >= 3) {
Recognition recognition = results.get(0);
if (recognition != null) {
if (recognition.getTitle() != null) recognitionTextView.setText(recognition.getTitle());
if (recognition.getConfidence() != null)
recognitionValueTextView.setText(
String.format("%.2f", (100 * recognition.getConfidence())) + "%");
float confi = 100 * recognition.getConfidence();
try {
switch (language) {
case 0:
if (!rm1 && recognitionTextView.getText().toString().equalsIgnoreCase("RM1") && confi > 80) {
mp0.start();
rm1 = true;
rm5 = false;
rm10 = false;
rm20 = false;
rm50 = false;
rm100 = false;
}
case 1:
if (!rm1 && recognitionTextView.getText().toString().equalsIgnoreCase("RM1") && confi > 80) {
mp6.start();
rm1 = true;
rm5 = false;
rm10 = false;
rm20 = false;
rm50 = false;
rm100 = false;
}
@UiThread
受保护的void showResultsInBottomSheet(列出结果){
if(results!=null&&results.size()>=3){
识别=结果。获取(0);
if(识别!=null){
if(recognition.getTitle()!=null)recognitionTextView.settText(recognition.getTitle());
if(recognition.getConfidence()!=null)
识别值文本视图.setText(
String.format(“%.2f”,(100*recognition.getConfidence())+“%”;
float confi=100*recognition.getConfidence();
试一试{
开关(语言){
案例0:
如果(!rm1&&recognitionTextView.getText().toString().equalsIgnoreCase(“rm1”)&&confi>80){
mp0.start();
rm1=真;
rm5=假;
rm10=假;
rm20=假;
rm50=假;
100令吉=假;
}
案例1:
如果(!rm1&&recognitionTextView.getText().toString().equalsIgnoreCase(“rm1”)&&confi>80){
mp6.start();
rm1=真;
rm5=假;
rm10=假;
rm20=假;
rm50=假;
100令吉=假;
}
您应该执行以下操作:
startActivityForResult(intent,0);
startActivityForResult(intent,1);
您应该调用setResult(0,intent);
language
在整个活动中获取所选语言
另外,由于在语言活动中您不需要对行
int language=intent.getIntExtra(“langCode”,0);
进行任何操作。因此对于开关,我应该编写开关(onActivityResult().message)在声明中?我编辑了我的答案并包含了开关。我看到了你的编辑,如果我理解正确,你可以在MainActivity的其他地方调用showResultsInBottomSheet,你只想从language activity中保存语言以在此处使用,对吗?是的,这就是我打算做的。好的,我再次编辑了我的答案。然后你只需se开关的变量语言