Android中listview和imageview实现条目单选效果

Android中listview和imageview实现条目单选效果,第1张

概述前段时间在项目开发中,有listview实现单选和多选的效果,特别是listview的单选效果,一开始项目比较紧,自己考虑的是用listview和radionbutton实现的,可能是自己考虑不周到的原因,效果是实现了,但是用户体验不怎

前段时间在项目开发中,有ListvIEw实现单选和多选的效果,特别是ListvIEw的单选效果,一开始项目比较紧,自己考虑的是用ListvIEw和radionbutton实现的,可能是自己考虑不周到的原因,效果是实现了,但是用户体验不怎么好,做完项目后,自己又弄了下,使用ListvIEw和imagevIEw实现,点击ListvIEw条目的时候就可以实现单选效果,这样用户体验就稍微好些。以下就是实现的方式:

activity_main.xml文件:

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context="com.Listtest.MainActivity$PlaceholderFragment" > <ListVIEw  androID:ID="@+ID/ListvIEw"  androID:layout_wIDth="fill_parent"  androID:layout_height="fill_parent" /></relativeLayout>

ListvIEw_item.xml文件

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context="com.Listtest.MainActivity$PlaceholderFragment" > <relativeLayout   androID:layout_wIDth="fill_parent"  androID:layout_height="50dp">  <TextVIEw   androID:ID="@+ID/tv"    androID:layout_wIDth="wrap_content"   androID:layout_height="wrap_content"   androID:textSize="15sp"   androID:textcolor="#000000"   androID:text="123112"   androID:layout_centerVertical="true"   androID:layout_marginleft="15dp"/>  <ImageVIEw   androID:ID="@+ID/iv"    androID:layout_wIDth="wrap_content"   androID:layout_height="wrap_content"   androID:src="@drawable/sex_nor"   androID:layout_alignParentRight="true"   androID:layout_centerVertical="true"   androID:layout_marginRight="15dp"/> </relativeLayout></relativeLayout>

MainActivity文件:

public class MainActivity extends ActionBaractivity implements OnItemClickListener { private listadapter adapter; private ListVIEw ListvIEw; private List<String> List=new ArrayList<String>(); @OverrIDe protected voID onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  requestwindowFeature(Window.FEATURE_NO_Title);  setContentVIEw(R.layout.activity_main);  initVIEw(); } private voID initVIEw() {  ListvIEw = (ListVIEw) findVIEwByID(R.ID.ListvIEw);  addData();  adapter=new listadapter(MainActivity.this);  ListvIEw.setAdapter(adapter);  ListvIEw.setonItemClickListener(this); } private voID addData() {  for (int i = 0; i < 20; i++) {   List.add("深圳"+i);  } } class listadapter extends BaseAdapter{  private int selected@R_502_4612@ = -1;// 选中的位置  private Context context;    public listadapter(Context context) {   this.context = context;  }  @OverrIDe  public int getCount() {   return List.size();  }  @OverrIDe  public Object getItem(int @R_502_4612@) {   return List.get(@R_502_4612@);  }  public voID setSelected@R_502_4612@(int @R_502_4612@) {   selected@R_502_4612@ = @R_502_4612@;  }  @OverrIDe  public long getItemID(int @R_502_4612@) {   return @R_502_4612@;  }  @OverrIDe  public VIEw getVIEw(int @R_502_4612@,VIEw convertVIEw,VIEwGroup parent) {   VIEwHolder holder;   if (convertVIEw==null) {    holder=new VIEwHolder();    convertVIEw=LayoutInflater.from(context).inflate(R.layout.ListvIEw_item,null);    holder.tv=(TextVIEw) convertVIEw.findVIEwByID(R.ID.tv);    holder.iv=(ImageVIEw) convertVIEw.findVIEwByID(R.ID.iv);    convertVIEw.setTag(holder);   }else{    holder=(VIEwHolder) convertVIEw.getTag();   }   String string = List.get(@R_502_4612@);   holder.tv.setText(string);   if(@R_502_4612@%2==0){    if (selected@R_502_4612@==@R_502_4612@) {     convertVIEw.setSelected(true);     convertVIEw.setpressed(true);//     convertVIEw.setBackgroundcolor(color.parsecolor("#0097e0"));     holder.iv.setimageResource(R.drawable.sex_down);    }else{     convertVIEw.setSelected(false);     convertVIEw.setpressed(false);//     convertVIEw.setBackgroundcolor(color.parsecolor("#e4ebf1"));     holder.iv.setimageResource(R.drawable.sex_nor);    }    }else{    if (selected@R_502_4612@==@R_502_4612@) {     convertVIEw.setSelected(true);     convertVIEw.setpressed(true);     holder.iv.setimageResource(R.drawable.sex_down);//     convertVIEw.setBackgroundcolor(color.parsecolor("#0097e0"));    }else{     convertVIEw.setSelected(false);     convertVIEw.setpressed(false);//     convertVIEw.setBackgroundcolor(color.parsecolor("#ced7de"));     holder.iv.setimageResource(R.drawable.sex_nor);    }   }   return convertVIEw;  }  class VIEwHolder{   TextVIEw tv;   ImageVIEw iv;  } } @OverrIDe public voID onItemClick(AdapterVIEw<?> parent,VIEw vIEw,int @R_502_4612@,long ID) {  adapter.setSelected@R_502_4612@(@R_502_4612@);  adapter.notifyDataSetInvalIDated(); }}

以上就是全部代码了。效果如下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android中listview和imageview实现条目单选效果全部内容,希望文章能够帮你解决Android中listview和imageview实现条目单选效果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存