1

コードに問題があります。String をSecondActivityからFirstActivityに渡したいです。FirstActivityは表示されませんが、まだ開いていることに注意してください。SecondActivityが終了すると、 String がFirstActivityに渡されます。

ここでの問題は、SecondActivityが終了してFirstActivityに移動すると、アプリケーション全体が閉じることです。

FirstActivity から SecondActivity へ:

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

SecondActivity から FirstActivity へ:

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

4 に答える 4

2

SecondActivity の結果を設定するときは、結果コードのみを設定します。setResult(0)使用する代わりにsetResult(0,intent)

また、FirstActivity の onActivityResult で、data引数から余分なものを取得します -this.filePath = data.getExtras().getString("filePath");

于 2012-11-14T14:03:52.913 に答える
2

使ってみて

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

それ以外の

intent.getExtras().getString("filePath");`
于 2012-11-14T14:07:51.690 に答える
0

この例を試して ください。問題は解決します。

于 2012-11-14T14:11:50.140 に答える
0

バンドルで試してください:

最初の活動;

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);
    }

2 番目のアクティビティ:

public void activity_value() {
    Intent i = getIntent();
    Bundle extras=i.getExtras();
    if(extras !=null) {           
        value = extras.getString("filePath");
    }
}
于 2012-11-14T14:03:32.400 に答える