android listview 改变选中项的 字体,颜色,格式等

下面是在网上找的 方法:

下载地址:http://download.csdn.net/download/repoem/3874084 

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3     android:orientation="vertical" android:layout_width="fill_parent"
4     android:layout_height="fill_parent">
5     <ListView android:id="@+id/listView" android:listSelector="#000000"
6         android:layout_width="fill_parent"
7         android:layout_height="wrap_content" />
8     
9 </LinearLayout>

 

 

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout
 3   xmlns:android="http://schemas.android.com/apk/res/android"
 4   android:id="@+id/LinearLayoutButton"
 5   android:layout_width="144px"
 6   android:layout_height="99px"
 7   android:gravity="center"
 8   android:orientation="vertical">
 9   
10     
11     <TextView 
12         android:id="@+id/TextViewButton" 
13         android:layout_width="fill_parent" 
14         android:layout_height="fill_parent"
15         android:textSize="20px">
16     </TextView>
17     
18     
19 </LinearLayout>

 

 

  1 public class listButtonTest extends Activity
  2 {
  3     private ListView listView = null;
  4     private ListAdapter listAdapter = null;
  5      
  6     ArrayList<ButtonView> buttonListView;
  7     /** Called when the activity is first created. */
  8     @Override
  9     public void onCreate(Bundle savedInstanceState)
 10     {
 11         super.onCreate(savedInstanceState);
 12         setContentView(R.layout.main);
 13         listView = (ListView) this.findViewById(R.id.listView);
 14         buttonListView = new ArrayList<ButtonView>();
 15         ButtonView a = new ButtonView(R.string.l1);
 16         buttonListView.add(a);
 17         ButtonView b = new ButtonView(R.string.l2);
 18         buttonListView.add(b);
 19         ButtonView c = new ButtonView(R.string.l3);
 20         buttonListView.add(c);
 21         ButtonView d = new ButtonView(R.string.l4);
 22         buttonListView.add(d);
 23         ButtonView e = new ButtonView(R.string.l5);
 24         buttonListView.add(e);
 25         listAdapter = new ListAdapter(buttonListView);
 26         listView.setAdapter(listAdapter);
 27         listView.setDividerHeight(0);
 28 
 29         listView.setOnItemClickListener(new ListView.OnItemClickListener()
 30         {
 31 
 32             @Override
 33             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
 34                     long arg3)
 35             {
 36                 // TODO Auto-generated method stub
 37                 listAdapter.setSelectedPosition(arg2);
 38 
 39                 listAdapter.notifyDataSetInvalidated();
 40 
 41             }
 42         });
 43     };
 44 
 45     public class ListAdapter extends BaseAdapter
 46     {
 47 
 48         ArrayList<ButtonView> arrayList = null;
 49         LayoutInflater inflater;
 50         View view;
 51         ButtonLayoutHolder buttonLayoutHolder;
 52         LinearLayout buttonLayout = null;
 53         TextView buttonText = null;
 54 
 55         private int selectedPosition = -1;// 选中的位置
 56 
 57         public ListAdapter(ArrayList<ButtonView> buttonListView)
 58         {
 59             // TODO Auto-generated constructor stub
 60             arrayList = buttonListView;
 61         }
 62 
 63         @Override
 64         public int getCount()
 65         {
 66             // TODO Auto-generated method stub
 67             return arrayList.size();
 68         }
 69 
 70         @Override
 71         public Object getItem(int position)
 72         {
 73             // TODO Auto-generated method stub
 74             return arrayList.get(position);
 75         }
 76 
 77         @Override
 78         public long getItemId(int position)
 79         {
 80             // TODO Auto-generated method stub
 81             return position;
 82         }
 83 
 84         public void setSelectedPosition(int position)
 85         {
 86             selectedPosition = position;
 87         }
 88  
 89         @Override
 90         public View getView(int position, View convertView, ViewGroup parent)
 91         {
 92             // TODO Auto-generated method stub
 93             inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 94             view = inflater.inflate(R.layout.button_layout, null, false);
 95             buttonLayoutHolder = (ButtonLayoutHolder) view.getTag();
 96 
 97             if (buttonLayoutHolder == null)
 98             {
 99                 buttonLayoutHolder = new ButtonLayoutHolder();
100                 buttonLayoutHolder.buttonLayout = (LinearLayout) view
101                         .findViewById(R.id.LinearLayoutButton);
102                 buttonLayoutHolder.textView = (TextView) view
103                         .findViewById(R.id.TextViewButton);
104                 view.setTag(buttonLayoutHolder);
105             }
106             buttonLayout = buttonLayoutHolder.buttonLayout;
107             buttonText = buttonLayoutHolder.textView;
108             if (selectedPosition == position)//选中
109             {
110                 buttonText.setSelected(true);
111                 buttonText.setPressed(true);
112                 buttonLayout.setBackgroundColor(Color.RED);
113                 buttonText.setTextColor(Color.BLUE);
114             } else//未选中
115             {
116                 buttonText.setSelected(false);
117                 buttonText.setPressed(false);
118                 buttonLayout.setBackgroundColor(Color.TRANSPARENT);
119                 buttonText.setTextColor(Color.WHITE);
120             }
121 
122             //buttonText.setTextColor(Color.BLUE);
123             buttonText.setText(arrayList.get(position).textViewId);
124             
125             return view;
126 
127         }
128 
129     };
130 
131 }
132 
133 class ButtonView
134 {
135     int textViewId;
136 
137     ButtonView(int tId)
138     {
139         textViewId = tId;
140     }
141 }
142 
143 class ButtonLayoutHolder
144 {
145     LinearLayout buttonLayout;
146     TextView textView;
147 }

 

 

 

转载于:https://www.cnblogs.com/qler/archive/2013/03/22/2975910.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值