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 ,