zxc*_*980 2 java android listview android-listview android-activity
在第一个活动中,有空ListView和Button.
当我按下按钮时,它会启动具有类别的第二个活动ListView.
点击其中一个listElements后,它将启动第三个活动,该活动ListView包含属于我所选类别的元素.
当我选择第三个 元素时,ListView它必须将我发送回第一个活动,其中我选择的元素被添加到我的空ListView
Dav*_*ser 19
使用Intent.FLAG_ACTIVITY_FORWARD_RESULT这样:
FirstActivity应该开始SecondActivity使用startActivityForResult().
SecondActivity应该开始ThirdActivity使用这个:
Intent intent = new Intent(this, ThirdActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
这告诉ThirdActivity它应该返回一个结果FirstActivity.
ThirdActivity 应该使用返回结果
setResult(RESULT_OK, data);
finish();
Run Code Online (Sandbox Code Playgroud)
此时,FirstActivity.onActivityResult()将使用返回的数据调用ThirdActivity.
尽管我恳求您更改架构设计,但可以这样做:
文件 ActivityOne.java
...
startActivityForResult(new Intent(this, ActivityTwo.class), 2);
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && data != null) {
//Collect extras from the 'data' object
}
}
...
Run Code Online (Sandbox Code Playgroud)
文件 ActivityTwo.java
...
startActivityForResult(new Intent(this, ActivityTwo.class), 3);
...
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK && data != null) {
setResult(resultCode, data);
finish();
}
setResult(RESULT_CANCELLED);
}
...
Run Code Online (Sandbox Code Playgroud)
文件 ActivityThree.java
...
//Fill the Intent resultData with the data you need in the first activity
setResult(RESULT_OK, resultData);
finish();
...
Run Code Online (Sandbox Code Playgroud)