当前位置:操作系统 > 安卓/Android >>

Android ListView分组布局改进

由于是在网上转载的一篇文章,在这里就不多说废话了,首先看一下最终的效果图:

\
 
然后是实现该ListView布局的主要代码:
1、程序主界面 SeparateListView.java
[java]
1. package whu.iss.wuxianglong;  
2.   
3. import java.util.ArrayList;  
4. import java.util.List;  
5.   
6. import android.app.Activity;  
7. import android.content.Context;  
8. import android.os.Bundle;  
9. import android.view.LayoutInflater;  
10. import android.view.View;  
11. import android.view.ViewGroup;  
12. import android.widget.ArrayAdapter;  
13. import android.widget.ListView;  
14. import android.widget.TextView;  
15.   
16. public class SeparateListView extends Activity {  
17.     ListView listView;  
18.     MyAdapter myAdapter;  
19.     public List<String> listTag = new ArrayList<String>();  
20.   
21.     /** Called when the activity is first created. */  
22.     @Override  
23.     public void onCreate(Bundle savedInstanceState) {  
24.         super.onCreate(savedInstanceState);  
25.         setContentView(R.layout.main);  
26.           
27.         listView = (ListView) findViewById(R.id.list);  
28.         myAdapter = new MyAdapter(this,  
29.                 android.R.layout.易做图_expandable_list_item_1, getData());  
30.         listView.setAdapter(myAdapter);  
31.     }  
32.     private List<String> getData() {  
33.         List<String> data = new ArrayList<String>();  
34.         int i = 0;  
35.   
36.         data.add("A");  
37.         listTag.add("A");  
38.         data.add("aa试数据" + (i++));  
39.         data.add("a试数据" + (i++));  
40.         data.add("aa试数据" + (i++));  
41.         listTag.add("B");  
42.         data.add("B");  
43.         data.add("bb试数据" + (i++));  
44.         data.add("b试数据" + (i++));  
45.         data.add("b试数据" + (i++));         
46.         data.add("b试数据" + (i++));  
47.         listTag.add("C");  
48.         data.add("C");  
49.         data.add("c测试数据" + (i++));  
50.         data.add("c测试数据" + (i++));  
51.         listTag.add("D");  
52.         data.add("D");  
53.         data.add("d测试数据" + (i++));  
54.         data.add("d测试数据" + (i++));  
55.         data.add("d测试数据" + (i++));  
56.         listTag.add("E");  
57.         data.add("E");  
58.         data.add("e测试数据" + (i++));  
59.         data.add("e测试数据" + (i++));  
60.         data.add("e测试数据" + (i++));  
61.         listTag.add("F");  
62.         data.add("F" );  
63.         data.add("f测试数据" + (i++));  
64.         return data;  
65.     }  
66.   
67.       
68.     class MyAdapter extends ArrayAdapter<String> {  
69.   
70.         public MyAdapter(Context context,  int textViewResourceId,  
71.                 List<String> objects) {  
72.             super(context,  textViewResourceId, objects);  
73.           
74.         }  
75.   
76.         @Override  
77.         public boolean areAllItemsEnabled() {  
78.             return false;   
79.         }  
80.   
81.         @Override  
82.         public boolean isEnabled(int position) {  
83.             // 如果-开头,则该项不可选   
84.             return !listTag.contains(getItem(position));   
85.         }  
86.   
87.         @Override  
88.         public View getView(int position, View convertView, ViewGroup parent) {  
89.             View view = convertView;  补充:移动开发 , Android ,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,