您也可以使用 StartActivityForResult 并将第二个活动的结果用于删除第一个活动中的项目。
我的意思是:
- FirstActivity 启动 SecondActivity 等待结果
- SecondActivity 将结果发送回 FirstActivity。仅当您删除
项目。
- 现在 FirstActivity 删除并刷新列表。
在 FirstActivity 中:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在 SecondActivity 中,当你按下删除按钮时:
Intent returnIntent = new Intent();
returnIntent.putExtra("delete", true);
returnIntent.putExtra("position", position);
setResult(Activity.RESULT_OK, returnIntent);
finish();
最后,FirstActivity 处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
if (data.getBooleanExtra("delete") {
// get position and delete item from list and refresh
int position = data.getIntegerExtra("position");
}
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
https://stackoverflow.com/a/10407371/1820599
已编辑:
在适配器构造函数中获取 Activity 的上下文:
FirstActivity listener;
public myAdapter(Context context, List<String> items) {
super(context, R.layout.row_edition, items);
this.listener = ((FirstActivity) context);
this.items = items;
}
然后,在适配器内部,当你推送项目时,调用活动来启动第二个:
listener.startSecondActivity(int position, parameters you need to use);
最后,在您的 FirstActivity 中
startSecondActivity(int position, parameters you need to use) {
// whatever you have to do
Intent i = new Intent(this, SecondActivity.class);
// push position inside intent and whatever you need
startActivityForResult(i, 1);
}
流程是:
- 推送项目
- 使用 FirstActivityListener 调用 SecondActivity
- 在 SecondActivity 中删除并返回结果
- 在 FirstActivity 中,使用辅助方法从适配器中删除项目
内部 que 适配器