Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检查在其他活动中单击的按钮?_Android_Function_Button - Fatal编程技术网

Android 如何检查在其他活动中单击的按钮?

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

我正在做的程序有一个语言按钮,点击按钮后,它将指向其他活动,并显示3个语言按钮,点击其中一个按钮后,按钮应将代码发送回主活动,然后使用开关确定代码并分别播放音频。这是我的密码,请看一下:

主要活动:

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开关的变量语言