listview刷新与内部控件的监听
2014-02-03 15:57
246 查看
困扰我多日的关于Android中的listview问题,今天终于完全解决了,首先讲一下到底遇到的是什么问题:(1)点击listview的item布局中的ImageButton按钮来获取相应的Textview的内容(2)通过点击上一问题中的按钮来更新listview。这个跟新listview网上大部分人推荐使用adapter.notifyDataSetChanged();//刷新适配器;
其实关于具体的listview原理我也不是太清楚,在这里只是记录一下解决问题的方法与相应的代码,方便以后遇到同样的问题来此查阅。
其实上面的两个问题合并起来也就是一个问题。
其实关于具体的listview原理我也不是太清楚,在这里只是记录一下解决问题的方法与相应的代码,方便以后遇到同样的问题来此查阅。
其实上面的两个问题合并起来也就是一个问题。
private void loadListView(){ adapter = new SimpleAdapter(this,getData(),R.layout.today_item, new String[]{"id","detail"},new int[]{R.id.taskid,R.id.detailid}){ public View getView(final int position, View convertView,ViewGroup parent) { final int index = position; View v= super.getView(position, convertView, parent); ImageButton btn=(ImageButton)v.findViewById(R.id.tasksubmit); btn.setTag(position); //id=(TextView)v.findViewById(R.id.taskid); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { //Toast.makeText(getApplicationContext(), "测试提交按钮", Toast.LENGTH_LONG).show(); Toast.makeText(getApplicationContext(), "单击我了"+list.get(position).get("id").toString(), 1).show();//通过position来获取TextView的内容,需要重写getView方法 //list. dialog(index); } }); //此监听留作扩充功能使用。 v.setOnClickListener(new OnClickListener() { public void onClick(View v) { } }); return v; } }; listView.setAdapter(adapter); } private List<Map<String, Object>> getData() { i++; System.out.println("第"+i+"次"); list = new ArrayList<Map<String, Object>>(); /*for(int i=0;i<getorder.size();i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("id",getorder.get(i)); map.put("detail", detail.get(i)); list.add(map); }*/ Map<String, Object> map = new HashMap<String, Object>(); map.put("id","11111"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","1112"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11113"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11114"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11115"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11116"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11117"); map.put("detail", "test"); list.add(map); map = new HashMap<String, Object>(); map.put("id","11118"); map.put("detail", "test"); list.add(map); return list; } public void dialog(final int index){ final Builder builder= new AlertDialog.Builder(this); builder.setMessage("亲,你确定已经完成了吗?"); builder.setTitle("温馨提示"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog,int which){ //id=(TextView)findViewById(R.id.taskid); new Thread(){ public void run(){ //OrderService service = new OrderService(); list.remove(index); Message msg = new Message(); msg.what = 1; handler.sendMessage(msg); } }.start(); //Toast.makeText(getApplicationContext(), l, Toast.LENGTH_LONG).show(); // } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog,int which){ dialog.dismiss(); } }); builder.create().show(); } Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0) { //loadingDialog.dismiss(); //loadListView(); } if (msg.what == 1) { adapter.notifyDataSetChanged();//刷新适配器;这里是刷新的关键 //loadListView(); Toast.makeText(getApplicationContext(), "提交成功", Toast.LENGTH_LONG).show(); } } };
相关文章推荐
- ListView中Item控件监听及异步刷新的实现
- 怎样给listview的item中的子控件设置监听及时时刷新
- 【学习】ListView子控件的监听及刷新数据不变
- 解决ListView的item监听事件个子控件监听事件冲突问题
- Android中ListView数据绑定和获取内部控件
- Xamarin.Android ListView Item 内部控件Click事件
- ListView给item其中控件添加监听,在Adapter中添加,不难,你可以的。Context帮大忙了
- ListView通过自定义适配器来显示数据并对Item项以及子view项的控件实现监听.
- android listview第一个子项内部控件的单击事件阻塞。。
- banner控件实现无线轮播+PullToRefreshScrollView 轮播图和listview跟着一起刷新
- android——标记一下,listView内部控件点击,自定义Toast
- 【Android】使用自定义Adapter优化ListView、修改数据及控件内部布局
- Android高级控件之ListView的优化以及下拉刷新页面
- Android 横向带有吸附效果的横向拖动控件(效果同纵向下拉刷新ListView)
- Android ListView:实现item内部控件的点击事件
- ListView的onItemClick监听无效,被listview中的item自控件偷取了焦点
- android gridview listview控件内容刷新 而不是整个页面刷新
- android--ListView(控件+二种适配器+监听事件)
- android之listView中监听item中某个控件,改变另一个控件的值
- ListView控件演示03:如何在列表添加项的时候减少UI的刷新