listview的item跳转的下一个界面点击删除数据,并返回更新listview

怎么描述这个过程呢。其实是这样的,我现在有一个功能 是一个名片夹的功能。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>();



猜你喜欢

转载自blog.csdn.net/meiwan123/article/details/68493488
今日推荐