Android 之ListView+Imagview设计实现单选
2016-09-09 20:42
351 查看
1。定义一个实体类
2。定义一个adpater
3。定义listview_item.xml
4 。Maintivity处理业简单务逻辑
效果图
![](http://img.blog.csdn.net/20160909203414168)
猛戳这里:studio点击下载
public class EntityInfo { private String name; //用来判断当前item是否被选中 private boolean isChick; public EntityInfo(String name,boolean isChick){ this.name=name; this.isChick=isChick; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isChick() { return isChick; } public void setChick(boolean chick) { isChick = chick; } }
2。定义一个adpater
class RadioButtonAdapter extends BaseAdapter{ private Context context; private List<EntityInfo> listinfos; private LayoutInflater inflater; public RadioButtonAdapter(Context context,List<EntityInfo> listinfos){ this.context=context; this.listinfos=listinfos; inflater =LayoutInflater.from(context); } @Override public int getCount() { return listinfos.size(); } @Override public Object getItem(int position) { return listinfos.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { convertView= inflater.inflate(R.layout.listview_item,null); TextView name= (TextView) convertView.findViewById(R.id.tv_name); ImageView image2= (ImageView) convertView.findViewById(R.id.iv_image2); // EntityInfo info= listinfos.get(position); name.setText(info.getName()); if(info.isChick()){ image2.setVisibility(View.VISIBLE); }else { image2.setVisibility(View.GONE); } return convertView; }
3。定义listview_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:layout_width="match_parent" android:layout_height="30dp"> <TextView android:id="@+id/tv_name" android:layout_centerVertical="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:text="nnsdf"/> <FrameLayout android:layout_centerVertical="true" android:layout_marginRight="10dp" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/tv_image1" android:layout_width="20dp" android:layout_height="20dp" android:src="@mipmap/chick"/> <ImageView android:id="@+id/iv_image2" android:layout_width="20dp" android:layout_height="20dp" android:src="@mipmap/ischick"/> </FrameLayout> </RelativeLayout> </LinearLayout>
4 。Maintivity处理业简单务逻辑
public class MainActivity extends Activity { private ListView lv; List<EntityInfo> listinfos=new ArrayList<EntityInfo>(); private RadioButtonAdapter madapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //默认第一个选中(看需求) listinfos.add(new EntityInfo("第一个",true)); listinfos.add(new EntityInfo("第二个",false)); listinfos.add(new EntityInfo("第三个",false)); listinfos.add(new EntityInfo("第四个",false)); lv= (ListView) findViewById(R.id.lv); madapter=new RadioButtonAdapter(MainActivity.this,listinfos); lv.setAdapter(madapter); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { EntityInfo info= (EntityInfo) madapter.getItem(position); Toast.makeText(MainActivity.this,info.getName(),Toast.LENGTH_LONG).show(); //核心代码 很简单的逻辑 for (EntityInfo infos : listinfos){ //拿到集合里面的item和当前点击item做比教 if(infos.getName().equals(info.getName())){ infos.setChick(true); }else { infos.setChick(false); } } //不能少 切记 madapter.notifyDataSetChanged(); } }); } }
效果图
猛戳这里:studio点击下载
相关文章推荐
- 【Android】 RecyclerView、ListView实现单选列表的优雅之路.
- Android RecyclerView、ListView实现单选列表的优雅之路.
- 【Android】 RecyclerView、ListView实现单选列表的优雅之路.
- Android中listview和imageview实现条目单选效果
- Android ListView ImageView实现单选按钮实例
- Android 设计一个可单选,多选的ListView
- Android腾讯微博客户端开发5:利用FootView实现ListView滑动动态加载实现分页
- android 在listview中实现点击textview改变checkbox的状态
- Android中ListView圆角实现,仿iPhone中UITableView
- 完美解决Android在listview添加checkbox实现单选多选操作问题
- android listview 圆角的实现方案,模仿Iphone的UITableView
- 完美解决Android在listview添加checkbox实现单选多选操作问题
- android搜索Android searchView和listview实现搜索
- android实现ListView中添加RaidoButton单选
- 实现自定义view(2):仿Android QQ多屏幕显示ListView的效果
- Android的Master/Detail风格界面中实现自定义ListView的单选
- android listView 自定义布局结合CheckedTextView实现多选
- Android searchView和listview实现搜索
- Android ListView 自定义用法(ListView 实现单选功能)
- Android在listview添加checkbox实现单选多选操作问题