listView item 部分刷新
来源:互联网 发布:深入理解java反射机制 编辑:程序博客网 时间:2024/06/04 19:55
1 自定义view
2 自定义点击事件
package com.example.recyclerview_test.view;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.ListView;/** * Created by wffei on 16/9/11. */public class MyListView extends ListView { public MyListView(Context context) { super(context); } public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void updateItemPosition( int position , RefreshItemListener refreshItemListener){ if(position>= getFirstVisiblePosition() && position<= getLastVisiblePosition()){ refreshItemListener.onRefreshItem(this.getChildAt(position-getFirstVisiblePosition())); } } public interface RefreshItemListener { void onRefreshItem(View view); }}
test例子
package com.example.recyclerview_test;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.RadioButton;import android.widget.TextView;import android.widget.Toast;import com.example.recyclerview_test.view.MyListView;import java.util.ArrayList;import java.util.List;public class MainListActivity extends Activity { private List<MyItem> datas; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_list); initView(); } MyListView myListView; private void initView() { myListView = (MyListView) findViewById(R.id.myListView); setAdapter(); myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { MyItem dataItem = (MyItem) adapter.getItem(i); dataItem.status=1; Toast.makeText(MainListActivity.this,""+1,Toast.LENGTH_SHORT).show(); myListView.updateItemPosition(i, new MyListView.RefreshItemListener() { @Override public void onRefreshItem(View view) { RadioButton radioButton = (RadioButton) view.findViewById(R.id.item_rad); radioButton.setChecked(false); } }); } }); } MyAdapter adapter; private void setAdapter() { List<MyItem> datas = getDatas(); adapter = new MyAdapter(datas, MainListActivity.this); myListView.setAdapter(adapter); } public List<MyItem> getDatas() { List<MyItem> datas =new ArrayList<MyItem>(); MyItem item1 =new MyItem("1",0); datas.add(item1); MyItem item2 =new MyItem("2",0); datas.add(item2); MyItem item3 =new MyItem("3",0); datas.add(item3); MyItem item4 =new MyItem("4",0); datas.add(item4); for(int i=0;i<20;i++){ MyItem item5 =new MyItem("5",0); datas.add(item5); } return datas; } class MyItem { public String id; public int status; public MyItem(String id, int status) { this.id = id; this.status = status; } } class MyAdapter extends BaseAdapter{ List<MyItem> datas; Context context; public MyAdapter(List<MyItem> datas, Context context) { this.datas = datas; this.context = context; } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int i) { return datas.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { MyHolder holder; if(view==null){ view = LayoutInflater.from(context).inflate(R.layout.adapter_item,null); holder =new MyHolder(); holder.radioButton = (RadioButton) view.findViewById(R.id.item_rad); holder.textView = (TextView) view.findViewById(R.id.item_title); view.setTag(holder); } else{ holder = (MyHolder) view.getTag(); } MyItem item =datas.get(i); if(item.status==0){ holder.radioButton.setChecked(true); } else{ holder.radioButton.setChecked(false); } holder.textView.setText(item.id); return view; } } class MyHolder { public RadioButton radioButton; public TextView textView; }}
adapter.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:gravity="center_vertical" android:descendantFocusability="blocksDescendants" android:layout_width="match_parent" android:layout_height="wrap_content"> <RadioButton android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" android:padding="10dp" android:id="@+id/item_rad" android:layout_gravity="center_horizontal" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/item_title" /></LinearLayout>
0 0
- listView item 部分刷新
- listview 刷新部分item
- ListView刷新指定item
- ListView刷新单个item
- listview单个刷新item
- listview 刷新某一个item
- listView刷新单个Item
- ListView刷新单个Item
- 刷新ListView某个Item状态
- ListView实现item局部刷新
- ListView实现Item局部刷新
- ListView实现Item局部刷新
- ListView 单条item刷新
- 刷新listView中的某个Item
- Android定点刷新Listview(Gridview)Item!实现指定Item刷新
- 【Android 一般进阶】ListView刷新指定item
- ListView动态刷新某项Item
- ListView刷新指定位置的Item
- μc/os 系统学习-任务2
- Spark RDD编程(二)
- 常见排序算法_java版本
- 操作系统 (计算机管理控制程序)
- 2016/9/11--一周的工作总结
- listView item 部分刷新
- 理解Volley -- Android 学习之路
- 裸机程序一:Ubuntu、Mac OS、Windows下EasyOpenJTAG+OpenOCD的安装和使用
- js数组去重的4个方法
- Apache Common Email的几个例子
- 排序算法-- 希尔排序
- 亚马逊SNS集成GCM的详细步骤
- C++虚函数表
- poj3070斐波那契数列求解