2012-11-14 33 views
1

我的代碼出現問題。我想從SecondActivityFirstActvity傳遞字符串。請注意,FirstActivity不可見,但它仍然打開。當SecondActivity完成時,它將字符串傳遞給FirstActivityAndroid從其他活動中獲得結果

我在這裏的問題是,當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(); 

FirstActivity結果:

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

什麼是錯的代碼?

+1

除了問題所在之外,您已經給出了一切。 – Simon

回答

2

當您設置SecondActivity的結果,你只設置結果代碼。取而代之的setResult(0)使用setResult(0,intent)

此外,在您的FirstActivity的onActivityResult從data說法得到額外 - this.filePath = data.getExtras().getString("filePath");

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

次活動:

public void activity_value() { 
    Intent i = getIntent(); 
    Bundle extras=i.getExtras(); 
    if(extras !=null) {   
     value = extras.getString("filePath"); 
    } 
} 
2

嘗試使用

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

,而不是

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

嘗試this example.It解決了你的問題米

相關問題