怎么描述这个过程呢。其实是这样的,我现在有一个功能 是一个名片夹的功能。listview里面可能有10个数据,我随便点击一个,进去之后展示名片信息详情页。这个详情页有一个删除按钮,删除这个名片信息。然后finish();返回listview界面,并更新界面数据。
先看listview点击事件里面。可以拿到每一个选项卡,再跳转的时候通过startActivityForResult() intent的传递到下一个界面。然后在删除成功之后用setResult();这个方法把删除的信息回传 回去。然后更新listview界面。接下来看代码;
首先是listview的点击事件
//listview的点击事件
listview_mpj.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent=new Intent(FriendsActivity.this, CardetailsActivity.class);
intent.putExtra("list_location",i);
//第二个参数为请求码,可以根据业务需求自己编号
startActivityForResult(intent,0);
}
});
在跳转的时候把i这个选项卡传递过去。
另外一个activity的ocreat()里面接收,或者在你处理事物的地方接收也可以,
JSONObject object = new JSONObject(response);
String code = object.getString("code");
if ("200".equals(code)) {
Toast.makeText(CardetailsActivity.this,"删除成功",Toast.LENGTH_SHORT).show();
int list_location=getIntent().getIntExtra("list_location",-1);
Intent intent=new Intent();
intent.putExtra("delete_location",list_location);
setResult(0,intent);
finish();
接收完成 继续通过intent回传过去。然后再listview界面onActivityResult()方法里面处理
//第一个参数为请求码,即调用startActivityForResult()传递过去的值
//第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent datat) {
switch(resultCode){
case 0:
if(datat!=null){
int delete_location=datat.getIntExtra("delete_location",-1);
if (delete_location > -1 && delete_location < data.size())
data.remove(delete_location);
friendsAdapter.notifyDataSetChanged();
}
case 2:
// NewActivity的返回数据
}
super.onActivityResult(requestCode, resultCode, datat);
}
我这里面的这个data就是 这个LIst<>;
ArrayList<BusinessCard> data = new ArrayList<BusinessCard>();