【安卓开发】借助setOnItemClickListener动态更新Listview

简介: 【安卓开发】借助setOnItemClickListener动态更新Listview

当点击删除按钮时,该列表项被删除,并且更新后的列表实时显示。

public class DeleteCityActivity extends AppCompatActivity implements View.OnClickListener{
    ImageView errorIv,rightIv;
    ListView deleteLv;
    String[] hotCitys = {"北京","上海","广州","深圳","珠海","佛山","南京","苏州","厦门","长沙","成都","福州",
            "杭州","武汉","青岛","西安","太原","沈阳","重庆","天津","南宁"};
    List<String> mDatas=new ArrayList<>();//列表数据源
    List<String>deleteCitys=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_delete_city);
        deleteLv = findViewById(R.id.delete_lv);//找到组件
        errorIv=findViewById(R.id.delete_iv_error);
        rightIv=findViewById(R.id.delete_iv_right);
        //传入数据
        mDatas = new ArrayList<>();
        for(String s:hotCitys){
            mDatas.add(s);
        }
       //设置监听事件
        errorIv.setOnClickListener(this);
        rightIv.setOnClickListener(this);
        //设置适配器
        DeleteCityAdapter baseAdapter = new DeleteCityAdapter(this, mDatas, deleteCitys);
        deleteLv.setAdapter(baseAdapter);
        deleteLv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
                TextView deletecity=view.findViewById(R.id.item_delete_tv);//找到点击的textview
                String cityname=deletecity.getText().toString().trim();//城市名
                System.out.println(pos+cityname);//找到位置
                mDatas.remove(cityname);
                deleteCitys.add(cityname);
                baseAdapter.notifyDataSetChanged();
                for(String tt:deleteCitys){
                    System.out.println("删除了"+tt+"\n");
                }
            }
        });
    }
    public void cancel(View view){
        Toast.makeText(this,"跳转到城市管理页面",Toast.LENGTH_LONG).show();
    }
    public void ok(View view){
        String tmp="";
        for(String s:deleteCitys)
            tmp=tmp+s+" ";
        Toast.makeText(this,"跳转到城市管理页面\n"+"删除了"+tmp,Toast.LENGTH_LONG).show();
    }
    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.delete_iv_error:
                cancel(view);
                break;
            case R.id.delete_iv_right:
                ok(view);
                break;
        }
    }
}

20200401134307494.png


目录
相关文章
|
1月前
|
存储 缓存 Android开发
构建高效的Android应用:采用RecyclerView优化列表显示
【4月更文挑战第2天】 在移动开发领域,列表显示是最常见的用户界面组件之一。对于Android平台而言,RecyclerView因其高效、灵活的特点而备受开发者青睐。本文将深入探讨如何利用RecyclerView在Android应用中实现流畅的列表滚动,以及通过各种优化策略来提升性能和用户体验。我们将从基本概念出发,逐步展开如何自定义适配器、视图持有者,以及利用布局管理器来实现复杂的列表布局。此外,还将讨论如何通过异步加载、缓存机制和动态数据更新来进一步优化性能。
14 1
|
4月前
|
前端开发 JavaScript 定位技术
Flutter vs 前端 杂谈:SliverAppBar、手动实现Appbar、前端Html+JS怎么实现滚动变化型Appbar - 比较
Flutter vs 前端 杂谈:SliverAppBar、手动实现Appbar、前端Html+JS怎么实现滚动变化型Appbar - 比较
35 0
|
5月前
|
XML Java Android开发
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
51 0
|
XML 前端开发 Java
Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog
Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog
394 0
Android MVVM框架搭建(八)高德地图定位、天气查询、BottomSheetDialog
|
Android开发
Android开发布局 案例一
Android开发布局 案例一
95 0
Android开发布局 案例一
|
XML Java Android开发
Android开发布局 案例二
Android开发布局 案例二
176 0
Android开发布局 案例二
|
缓存 Android开发
聊聊RecyclerView新出的ConcatAdapter如何使用
聊聊RecyclerView新出的ConcatAdapter如何使用
聊聊RecyclerView新出的ConcatAdapter如何使用
|
新零售 存储 前端开发
一「表」走天下,Flutter瀑布流及通用列表解决方案
目前闲鱼业务中无论是首页还是搜索页都有大量可以落地瀑布流的场景,而在Flutter原生中只提供了ListView, GridView,无法提供自定义布局的能力。 而在社区中,一般瀑布流的解决方案都是基于SliverMultiBoxAdaptor对其performLayout进行定制,主要存在的问题是缺乏复用机制,并且在很多情形下容易出现重复布局,在线上业务的复杂场景下容易出现帧数偏低的问题, 闪屏的问题。同时对于Child生命周期,打点曝光等一系列基础功能的支持还是一片空白的状态。 所以,我们迫切需要一个更为通用的可以解决复杂布局过程同时能够对基础能力进行扩充的列表视图解决方案。
1486 0
一「表」走天下,Flutter瀑布流及通用列表解决方案
|
存储 前端开发 Java
Flutter瀑布流及通用列表解决方案
解决flutter复杂布局过程以及对基础能力进行扩充的列表视图解决方案
2525 0
Flutter瀑布流及通用列表解决方案
|
C# Android开发
C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码
原文:C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.
953 0