【Android笔记】listview点击或选中item改变item样式或背景

1、自定义Adapter中配置:

 1 public class MyAdapter extends BaseAdapter{
 2
 3  int mSelect = 0;   //选中项
 4
 5      ......
 6
 7  public void changeSelected(int positon){ //刷新方法
 8      if(positon != mSelect){
 9       mSelect = positon;
10      notifyDataSetChanged();
11      }
12     }
13
14
15
16 public View getView(int position, View convertView, ViewGroup parent) {
17 //     if(convertView==null){
18         LayoutInflater factory = LayoutInflater.from(context);
19         View v = (View) factory.inflate(R.layout.list_item, null);
20         TextView tv = (TextView) v.findViewById(R.id.Item_tv);
21         tv.setText("test");
22 //     }
23         if(mSelect==position){
24          v.setBackgroundResource(R.drawable.fc_bg);  //选中项背景
25         }else{
26          v.setBackgroundResource(R.drawable.bg);  //其他项背景
27         }
28
29         return v;
30     }
31
32 }

2、在Activity中应用:

 1 ...........
 2
 3 mAdapter = new MyAdapter(...);
 4
 5 myList.setAdapter(mAdapter);
 6
 7 //////////点击监听
 8
 9 myList.setOnItemClickListener(new OnItemClickListener() {
10
11   @Override
12   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
13           mAdapter.changeSelected(position);//刷新
14
15   }......}
16
17 ////////////////选中监听
18
19 myList.setOnItemSelectedListener(new OnItemSelectedListener() {
20
21   @Override
22   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
23             mAdapter.changeSelected(position);//刷新
24
25   }......}

参考原文:http://www.tuicool.com/articles/YFBVJf

时间: 2024-10-08 17:21:37

【Android笔记】listview点击或选中item改变item样式或背景的相关文章

android中listview点击事件失效的灵异事件

首先说明一下我想实现的功能: 点击某个item之后,让其颜色发生变化.如果变化网上有很多例子,我就不班门弄斧了.Listview之所以点击没有反应是因为上图中绿色部分(自己定义的一个继承BaseAdapter的adapter来适应listview)将listview的item覆盖了.现在点击的只是自定义的adapter中的convertView. 其次,自定义的adapter中包含一个ImageView和二个TextView.代码如下: <?xml version="1.0" e

ListView点击或选中item改变背景

点击或选中ListView中的一项后,使item背景改变,失去焦点同样显示选中的背景,重新选中另外一项才刷新: 在Adapter中配置: public class MyAdapter extends BaseAdapter{ int mSelect = 0; //选中项 ...... public void changeSelected(int positon){ //刷新方法 if(positon != mSelect){ mSelect = positon; notifyDataSetCha

Android中Listview点击item不变颜色以及设置listselector 无效

这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listselector,有一个默认的颜色,同理如果点击没颜色变化我们怎么设置listselector也不会变颜色的. 但是在我们的开发过程中,我们可能会碰到这样的问题listview点击不变颜色,总结了一下大概有这几种原因: 1.item的layout设置background颜色值,去掉背景颜色即可 2.listview中listselector属性的效果被覆盖了,比如列表的Item为一个占满单元格的I

android的ListView点击item使item展开的做法

直接上代码把.主要是又一次给item measure高度,直接上代码把 import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchList

android中listview点击item不变色的问题

问题:点击listview的item没有变色 原因:因为设置了item的布局背景色,所以系统默认的点击变色效果就没有了 解决:不要设置item的布局背景色,若应用主题为黑色,则listview显示为黑色,此时只需要设置listview的背景色即可,不需要设置item的布局背景色. 版权声明:本文为博主原创文章,未经博主允许不得转载.

[转]android中listview点击事件失效

首先说明一下我想实现的功能: 点击某个item之后,让其颜色发生变化.如果变化网上有很多例子,我就不班门弄斧了.Listview之所以点击没有反应是因为上图中绿色部分(自己定义的一个继承BaseAdapter的adapter来适应listview)将listview的item覆盖了.现在点击的只是自定义的adapter中的convertView. 其次,自定义的adapter中包含一个ImageView和二个TextView.代码如下: <?xml version="1.0" e

Android笔记——Button点击事件几种写法

Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button的onClick的属性 首先我们简单地定义一个带Button的xml布局文件 activity_main.xml: <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:

android中listview点击监听器onItemClick四个参数的含义

public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item. 如果你点了b这个item.如下: public  void onItemClick (AdapterView<?> parent,    // parent相当于listview  Y适配器的一个指针,可以通过它来获得Y

android中listview点击事件的监听实现

listview_bookmark.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView bookmark_title=(TextView)view.findViewById(R.id.bookmark_title); L