X Tutup
Skip to content

Commit 95df8d0

Browse files
committed
增加测试页面
1 parent 5ba7d02 commit 95df8d0

File tree

17 files changed

+72
-16
lines changed

17 files changed

+72
-16
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,13 @@
33
2. 支持手势显示当前值
44
3. 支持当前的区域颜色渐变
55
4. ![演示效果](http://img.blog.csdn.net/20151222175518831)
6+
5.如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,
7+
事件会被子View捕获到,ListView无法捕获处理该事件.
8+
解决方法:
9+
在checkbox、button对应的view处加
10+
[html]
11+
```xml
12+
android:focusable="false"
13+
android:clickable="false"
14+
android:focusableInTouchMode="false"
15+
```

app/src/main/java/com/allen/androiddevcoder/activity/ActivityList.java

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.support.v7.app.AppCompatActivity;
66
import android.support.v7.widget.Toolbar;
77
import android.view.LayoutInflater;
8+
import android.view.MotionEvent;
89
import android.view.View;
910
import android.view.ViewGroup;
1011
import android.widget.AdapterView;
@@ -19,6 +20,7 @@ public class ActivityList extends AppCompatActivity {
1920
private Toolbar mToolbarToolbar;
2021
private FloatingActionButton mFabFloatingActionButton;
2122
private ListView listView;
23+
2224
@Override
2325
protected void onCreate(Bundle savedInstanceState) {
2426
super.onCreate(savedInstanceState);
@@ -29,22 +31,41 @@ protected void onCreate(Bundle savedInstanceState) {
2931
listView.setAdapter(new BaseAdapter());
3032
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
3133
@Override
32-
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
33-
CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox);
34-
TextView textView = (TextView) view.findViewById(R.id.textView);
35-
if (checkBox.isChecked()){
36-
checkBox.setChecked(false);
37-
textView.setText("我被取消了");
38-
}else {
39-
checkBox.setChecked(true);
40-
textView.setText("我被选中了");
41-
}
42-
34+
public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
35+
final CheckBox checkBox = (CheckBox) view.findViewById(R.id.checkBox);
36+
final TextView textView = (TextView) view.findViewById(R.id.textView);
37+
final CheckBox checkBox1 = (CheckBox) view.findViewById(R.id.checkBox1);
38+
final TextView textView1 = (TextView) view.findViewById(R.id.textView1);
39+
checkBox.setOnCheckedChangeListener(parent.getOnItemSelectedListener());
40+
view.setOnTouchListener(new View.OnTouchListener() {
41+
@Override
42+
public boolean onTouch(View v, MotionEvent event) {
43+
if (event.getX()<view.getWidth()/2){
44+
if (checkBox.isChecked()) {
45+
checkBox.setChecked(false);
46+
textView.setText("我被第一个取消了");
47+
} else {
48+
checkBox.setChecked(true);
49+
textView.setText("我被第一个选中了");
50+
}
51+
}else {
52+
if (checkBox1.isChecked()) {
53+
checkBox.setChecked(false);
54+
textView1.setText("我被第二个取消了");
55+
} else {
56+
checkBox1.setChecked(true);
57+
textView1.setText("我被第二个选中了");
58+
}
59+
}
60+
return false;
61+
}
62+
});
4363
}
4464
});
4565

4666
}
47-
class BaseAdapter extends android.widget.BaseAdapter{
67+
68+
class BaseAdapter extends android.widget.BaseAdapter {
4869

4970
@Override
5071
public int getCount() {
@@ -70,22 +91,31 @@ public View getView(int position, View view, ViewGroup parent) {
7091
view.setTag(holder);
7192
} else {
7293
holder = (ViewHolder) view.getTag();
73-
}
94+
}// holder.checkBox.setOnCheckedChangeListener(new CheckedListener());
95+
96+
// holder.checkBox1.setOnCheckedChangeListener(new CheckedListener());
7497
return view;
7598
}
7699

77100

78101
class ViewHolder {
79-
private CheckBox checkBox;
102+
private CheckBox checkBox,checkBox1;
80103

81104

82105
ViewHolder(View view) {
83106
initViews(view);
84107
}
85108

86109
private void initViews(View root) {
87-
checkBox = (CheckBox) root.findViewById(R.id.checkBox);
110+
checkBox = (CheckBox) root.findViewById(R.id.checkBox);
111+
checkBox1 = (CheckBox) root.findViewById(R.id.checkBox1);
88112
}
89113
}
90114
}
115+
// class CheckedListener implements CompoundButton.OnCheckedChangeListener {
116+
// @Override
117+
// public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
118+
// System.out.println("compoundButton.getTag()" + compoundButton.getTag() + "b" + b);
119+
// }
120+
// }
91121
}

app/src/main/res/layout/activity_list_item.xml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,21 @@
2222
android:focusable="false"
2323
android:clickable="false"
2424
android:focusableInTouchMode="false" />
25-
25+
<CheckBox
26+
android:layout_width = "wrap_content"
27+
android:layout_height = "wrap_content"
28+
android:text = "New CheckBox"
29+
android:id = "@+id/checkBox1"
30+
android:layout_weight = "1"
31+
android:focusable="false"
32+
android:clickable="false"
33+
android:focusableInTouchMode="false" />
34+
<TextView
35+
android:layout_width = "wrap_content"
36+
android:layout_height = "wrap_content"
37+
android:textAppearance = "?android:attr/textAppearanceLarge"
38+
android:text = "Large Text"
39+
android:id = "@+id/textView1"
40+
android:layout_weight = "1"
41+
android:layout_gravity = "center_horizontal" />
2642
</LinearLayout >
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)
X Tutup