Skip to content

Commit d1e2456

Browse files
author
teach
committed
支持单行显示
1 parent caa67e7 commit d1e2456

File tree

9 files changed

+190
-252
lines changed

9 files changed

+190
-252
lines changed

.idea/codeStyles/Project.xml

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
apply plugin: 'com.android.application'
22

33
android {
4-
compileSdkVersion 25
5-
buildToolsVersion "25.0.3"
4+
compileSdkVersion 26
65
defaultConfig {
76
applicationId "com.donkingliang.labelsviewdemo"
8-
minSdkVersion 9
9-
targetSdkVersion 25
7+
minSdkVersion 14
8+
targetSdkVersion 26
109
versionCode 1
1110
versionName "1.0"
1211
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -20,12 +19,12 @@ android {
2019
}
2120

2221
dependencies {
23-
compile fileTree(dir: 'libs', include: ['*.jar'])
24-
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
22+
implementation fileTree(dir: 'libs', include: ['*.jar'])
23+
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
2524
exclude group: 'com.android.support', module: 'support-annotations'
2625
})
27-
compile 'com.android.support:appcompat-v7:25.3.1'
28-
testCompile 'junit:junit:4.12'
26+
implementation 'com.android.support:appcompat-v7:26.1.0'
27+
testImplementation 'junit:junit:4.12'
2928

30-
compile project(":labels")
29+
implementation project(":labels")
3130
}

app/src/main/java/com/donkingliang/labelsviewdemo/MainActivity.java

Lines changed: 36 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,32 @@
1414

1515
import static com.donkingliang.labelsviewdemo.R.id.labels;
1616

17-
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
17+
public class MainActivity extends AppCompatActivity implements LabelsView.OnLabelClickListener {
1818

19+
private LabelsView btnLabels;
1920
private LabelsView labelsView;
2021

2122
@Override
2223
protected void onCreate(Bundle savedInstanceState) {
2324
super.onCreate(savedInstanceState);
2425
setContentView(R.layout.activity_main);
25-
26-
labelsView = (LabelsView) findViewById(labels);
26+
btnLabels = findViewById(R.id.btnLabels);
27+
labelsView = findViewById(labels);
28+
29+
// 按钮组
30+
ArrayList<String> btns = new ArrayList<>();
31+
btns.add("不可选中");
32+
btns.add("单选(可反选)");
33+
btns.add("单选(不可反选)");
34+
btns.add("多选");
35+
btns.add("多选(最多5个)");
36+
btns.add("多选(最少1个)");
37+
btns.add("多选(1,2必选)");
38+
btns.add("指示器模式");
39+
btns.add("取消选中");
40+
btns.add("点击");
41+
btnLabels.setLabels(btns);
42+
btnLabels.setOnLabelClickListener(this);
2743

2844
//测试的数据
2945
// ArrayList<String> label = new ArrayList<>();
@@ -54,66 +70,6 @@ protected void onCreate(Bundle savedInstanceState) {
5470
testList.add(new TestBean("PHP", 10));
5571
testList.add(new TestBean("Python", 11));
5672
testList.add(new TestBean("Swift", 12));
57-
testList.add(new TestBean("Android", 1));
58-
testList.add(new TestBean("IOS", 2));
59-
testList.add(new TestBean("前端", 3));
60-
testList.add(new TestBean("后台", 4));
61-
testList.add(new TestBean("微信开发", 5));
62-
testList.add(new TestBean("游戏开发", 6));
63-
testList.add(new TestBean("Java", 7));
64-
testList.add(new TestBean("JavaScript", 8));
65-
testList.add(new TestBean("C++", 9));
66-
testList.add(new TestBean("PHP", 10));
67-
testList.add(new TestBean("Python", 11));
68-
testList.add(new TestBean("Swift", 12));
69-
testList.add(new TestBean("Android", 1));
70-
testList.add(new TestBean("IOS", 2));
71-
testList.add(new TestBean("前端", 3));
72-
testList.add(new TestBean("后台", 4));
73-
testList.add(new TestBean("微信开发", 5));
74-
testList.add(new TestBean("游戏开发", 6));
75-
testList.add(new TestBean("Java", 7));
76-
testList.add(new TestBean("JavaScript", 8));
77-
testList.add(new TestBean("C++", 9));
78-
testList.add(new TestBean("PHP", 10));
79-
testList.add(new TestBean("Python", 11));
80-
testList.add(new TestBean("Swift", 12));
81-
testList.add(new TestBean("Android", 1));
82-
testList.add(new TestBean("IOS", 2));
83-
testList.add(new TestBean("前端", 3));
84-
testList.add(new TestBean("后台", 4));
85-
testList.add(new TestBean("微信开发", 5));
86-
testList.add(new TestBean("游戏开发", 6));
87-
testList.add(new TestBean("Java", 7));
88-
testList.add(new TestBean("JavaScript", 8));
89-
testList.add(new TestBean("C++", 9));
90-
testList.add(new TestBean("PHP", 10));
91-
testList.add(new TestBean("Python", 11));
92-
testList.add(new TestBean("Swift", 12));
93-
testList.add(new TestBean("Android", 1));
94-
testList.add(new TestBean("IOS", 2));
95-
testList.add(new TestBean("前端", 3));
96-
testList.add(new TestBean("后台", 4));
97-
testList.add(new TestBean("微信开发", 5));
98-
testList.add(new TestBean("游戏开发", 6));
99-
testList.add(new TestBean("Java", 7));
100-
testList.add(new TestBean("JavaScript", 8));
101-
testList.add(new TestBean("C++", 9));
102-
testList.add(new TestBean("PHP", 10));
103-
testList.add(new TestBean("Python", 11));
104-
testList.add(new TestBean("Swift", 12));
105-
testList.add(new TestBean("Android", 1));
106-
testList.add(new TestBean("IOS", 2));
107-
testList.add(new TestBean("前端", 3));
108-
testList.add(new TestBean("后台", 4));
109-
testList.add(new TestBean("微信开发", 5));
110-
testList.add(new TestBean("游戏开发", 6));
111-
testList.add(new TestBean("Java", 7));
112-
testList.add(new TestBean("JavaScript", 8));
113-
testList.add(new TestBean("C++", 9));
114-
testList.add(new TestBean("PHP", 10));
115-
testList.add(new TestBean("Python", 11));
116-
testList.add(new TestBean("Swift", 12));
11773

11874
labelsView.setLabels(testList, new LabelsView.LabelTextProvider<TestBean>() {
11975
@Override
@@ -126,75 +82,66 @@ public CharSequence getLabelText(TextView label, int position, TestBean data) {
12682
// labelsView.setMaxLines(1);
12783

12884
labelsView.clearAllSelect();
129-
130-
findViewById(R.id.btn_none).setOnClickListener(this);
131-
findViewById(R.id.btn_single).setOnClickListener(this);
132-
findViewById(R.id.btn_multi).setOnClickListener(this);
133-
findViewById(R.id.btn_multi_5).setOnClickListener(this);
134-
findViewById(R.id.btn_un_select).setOnClickListener(this);
135-
findViewById(R.id.btn_click).setOnClickListener(this);
136-
findViewById(R.id.btn_single_irrevocably).setOnClickListener(this);
137-
findViewById(R.id.btn_multi_compulsory).setOnClickListener(this);
138-
findViewById(R.id.btn_multi_1).setOnClickListener(this);
139-
findViewById(R.id.btn_indicator).setOnClickListener(this);
14085
}
14186

14287
@Override
143-
public void onClick(View v) {
88+
public void onLabelClick(TextView label, Object data, int position) {
14489
labelsView.setOnLabelClickListener(null);
145-
switch (v.getId()) {
146-
case R.id.btn_none:
90+
labelsView.clearCompulsorys();
91+
switch (position) {
92+
case 0:
14793
labelsView.setSelectType(LabelsView.SelectType.NONE);
14894
break;
14995

150-
case R.id.btn_single:
96+
case 1:
15197
labelsView.setSelectType(LabelsView.SelectType.SINGLE);
15298
break;
15399

154-
case R.id.btn_single_irrevocably:
100+
case 2:
155101
labelsView.setSelectType(LabelsView.SelectType.SINGLE_IRREVOCABLY);
156102
break;
157103

158-
case R.id.btn_multi:
104+
case 3:
159105
labelsView.setSelectType(LabelsView.SelectType.MULTI);
160106
labelsView.setMaxSelect(0);
161107
labelsView.setMinSelect(0);
162108
break;
163109

164-
case R.id.btn_multi_5:
110+
case 4:
165111
labelsView.setSelectType(LabelsView.SelectType.MULTI);
166112
labelsView.setMaxSelect(5);
167113
labelsView.setMinSelect(0);
168114
break;
169115

170-
case R.id.btn_multi_1:
116+
case 5:
171117
labelsView.setSelectType(LabelsView.SelectType.MULTI);
172118
labelsView.setMaxSelect(0);
173119
labelsView.setMinSelect(1);
174120
break;
175121

176-
case R.id.btn_multi_compulsory:
122+
case 6:
177123
labelsView.setSelectType(LabelsView.SelectType.MULTI);
178124
labelsView.setMaxSelect(0);
179125
labelsView.setMinSelect(0);
180126
labelsView.setCompulsorys(0, 1);
181127
break;
182128

183-
case R.id.btn_indicator:
184-
129+
case 7:
185130
labelsView.setIndicator(!labelsView.isIndicator());
186131
if (labelsView.isIndicator()) {
187-
((TextView) v).setText("取消指示器模式");
132+
btnLabels.getLabels().set(position, "取消指示器模式");
133+
label.setText("取消指示器模式");
188134
} else {
189-
((TextView) v).setText("指示器模式");
135+
btnLabels.getLabels().set(position, "指示器模式");
136+
label.setText("指示器模式");
190137
}
191138
break;
192139

193-
case R.id.btn_un_select:
140+
case 8:
194141
labelsView.clearAllSelect();
195142
break;
196143

197-
case R.id.btn_click:
144+
case 9:
198145
labelsView.setSelectType(LabelsView.SelectType.NONE);
199146
labelsView.setOnLabelClickListener(new LabelsView.OnLabelClickListener() {
200147
@Override

0 commit comments

Comments
 (0)