有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android从另一个活动获取结果

我的代码有问题。我想将字符串从第二个活动传递到第一个活动。请注意,FirstActivity不可见,但仍处于打开状态。当第二个活动完成时,它会将一个字符串传递给第一个活动

我这里的问题是,当第二个活动结束并转到第一个活动时,整个应用程序关闭

从第一个活动到第二个活动:

Intent  intent = new Intent(MainActivity.this, FileChooser.class);
startActivityForResult(intent, 0);

从第二个活动到第一个活动:

Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("filePath", "/sdcard/path1");
setResult(0);
finish();

第一个活动结果:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //TODO handle here.         
    Intent intent = getIntent();        
    this.filePath = intent.getExtras().getString("filePath");
}

代码有什么问题


共 (4) 个答案

  1. # 1 楼答案

    设置第二个活动的结果时,只设置结果代码。使用^{}代替^{}

    另外,在第一个Activity的onActivityResult中,从data参数中获取额外的值-this.filePath = data.getExtras().getString("filePath");

  2. # 2 楼答案

    试试this 实例它解决了你的问题

  3. # 3 楼答案

    试用捆绑包:

    第一个活动

    public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), FIRSTACTIVITY.class);
            Bundle bundle = new Bundle();
            bundle.putString("filePath","/sdcard/path1");
            intent.putExtras(bundle);               
            startActivity(intent);
        }
    

    第二项活动:

    public void activity_value() {
        Intent i = getIntent();
        Bundle extras=i.getExtras();
        if(extras !=null) {           
            value = extras.getString("filePath");
        }
    }
    
  4. # 4 楼答案

    尝试使用

    data.getExtras().getString("filePath");
    

    而不是

    intent.getExtras().getString("filePath");`