Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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
Java 从第二个活动中检索值_Java_Android - Fatal编程技术网

Java 从第二个活动中检索值

Java 从第二个活动中检索值,java,android,Java,Android,在我的主要活动中,我启动了第二个活动: Button button = (Button) findViewById(R.id.btnPush); button.setOnClickListener(new View.OnClickListener(){ public void onClick(View view){ Intent nowStart = new Intent(getApplicationContext(),

在我的主要活动中,我启动了第二个活动:

        Button button = (Button) findViewById(R.id.btnPush);
    button.setOnClickListener(new View.OnClickListener(){
        public void onClick(View view){
            Intent nowStart = new Intent(getApplicationContext(),      AddPillScheduleActivity.class);
            startActivityForResult(nowStart, RESULT_OK);
            //startSecond();
        }
    });
然后在我的第二个活动中,我想向主活动返回一个值

      Intent i=new Intent();
            i.putExtra("ANSWER", ans);
            setResult(RESULT_OK,i);
            finish();
这似乎执行得很好,但回到我的主要活动中,我想抓住价值。这就是我遇到麻烦的地方。我的调试器从未在onActivityResult上停止,即:

@Override
protected void onActivityResult(int requestCode ,int resultCode ,Intent data ) {
    super.onActivityResult(requestCode, resultCode, data);
    String name = getIntent().getExtras().getString("ANSWER");
    if (resultCode == RESULT_OK) {
        Toast.makeText(this, name, Toast.LENGTH_LONG).show();
    }
有人能帮我弄点光吗?谢谢

String name = getIntent().getExtras().getString("ANSWER");
正在访问错误的意图
getIntent()
返回启动活动的意图。你想要

String name = data.getExtras().getString("ANSWER");

另外,
startActivityForResult()
的第二个参数是一个请求代码,因此使用
RESULT\u OK
——尽管它仍然有效——是令人困惑的。

您没有从正确的意图中获得值,即该方法附带的意图。将代码修改为以下内容:

 @Override
 protected void onActivityResult(int requestCode ,int resultCode ,Intent data ) {
    super.onActivityResult(requestCode, resultCode, data);
    String name = data.getStringExtra("ANSWER");
    if (resultCode == RESULT_OK) {
      Toast.makeText(this, name, Toast.LENGTH_LONG).show();
    }
 }

在将
字符串
而不是
放入意图时使用该方法。此外,并非最佳做法对
requestCode
resultCode
使用相同的代码

我把它放在我的MainActivity中,但是调试器没有中断,我也从来没有得到Toast消息,尽管我被重定向回屏幕上的MainActivity。更新了我的答案。检查这是否为您解决了问题:)