【发布时间】:2013-12-05 14:48:51
【问题描述】:
我有一个自定义适配器,如下所示,
public class CustomAdapter extends ArrayAdapter<String> {
private Activity activity;
private List<String> items;
private LayoutInflater inflater = null;
public CustomAdapter(Activity a, int resource, List<String> i) {
super(a, resource, i);
activity = a;
items = i;
inflater = (LayoutInflater) a
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
if (vi == null) {
vi = inflater.inflate(
android.R.layout.simple_list_item_multiple_choice, parent,
false);
}
final CheckedTextView checkbox = (CheckedTextView) vi
.findViewById(android.R.id.text1);
checkbox.setText(items.get(position));
Log.d("test", "testing");
checkbox.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
if (!checkbox.isChecked()) {
checkbox.setChecked(true);
Log.d("Test", "checked");
if (checkbox.isChecked()) {
checkbox.setChecked(false);
Log.d("test", "unchecked");
}
}
}
});
但是,我的列表现在只为每一行显示一个复选框,而它应该显示一个文本视图和一个复选框。此外,无论我触摸复选框还是列表项本身,我的 onClickListener 都可以工作。只有在单击复选框时才应调用 Log.d。
【问题讨论】:
-
你能插入xml文件simple_list_item_multiple_choice吗?关于文本视图的问题可能存在
-
@GerryR 是框架的默认组件,因为它以“android.R.layout”开头
标签: android android-listview adapter