Android ListView+;复选框=?
可能重复:Android ListView+;复选框=?,android,android-listview,android-checkbox,Android,Android Listview,Android Checkbox,可能重复: 我需要: 带有 items { CheckBox, then TextView } ; 当您按下复选框时,项目应更改其颜色 我怎样才能得到它 附言 换句话说,我需要一个带有复选框的列表视图,如Gmail应用程序中的复选框,创建自定义适配器,并在复选框上设置监听器,以更改所需内容。(我不会发布任何代码,直到我看到你自己做了什么)。 如果你不知道Android文档是如何开始的。对于这个问题,您应该特别检查LayoutInflater、BaseAdapter、ListActivity和
我需要: 带有
items { CheckBox, then TextView } ;
当您按下复选框时,项目应更改其颜色
我怎样才能得到它
附言
换句话说,我需要一个带有复选框的列表视图,如Gmail应用程序中的复选框,创建自定义适配器,并在复选框上设置监听器,以更改所需内容。(我不会发布任何代码,直到我看到你自己做了什么)。
如果你不知道Android文档是如何开始的。对于这个问题,您应该特别检查LayoutInflater、BaseAdapter、ListActivity和creating xml resources(确切地说是布局)。创建自定义适配器并在复选框上设置侦听器,这些复选框将更改您想要的内容。(我不会发布任何代码,直到我看到你自己做了什么)。
如果你不知道Android文档是如何开始的。对于这个问题,您应该特别检查LayoutFlater、BaseAdapter、ListActivity和创建xml资源(确切地说是布局)。答案非常简单!有一个名为
CheckedTextView
的组件,它是TextView
和复选框的组合。
这个组件可能会简化您的逻辑,让您可以自由地修改列表的监听器中的任何内容
我为你写了一个例子:
public class CheckBoxListView extends ListActivity implements OnItemClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Mock data
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
//android's simple_list_item_multiple_choice is a CheckedTextView
//try creating your own later ;)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, values);
getListView().setOnItemClickListener(this);
setListAdapter(adapter);
}
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
CheckedTextView item = (CheckedTextView) arg1;
//The change color logic is here!
if(item.isChecked()) {
item.setTextColor(Color.BLACK);
item.setChecked(false);
}
else {
item.setTextColor(Color.RED);
item.setChecked(true);
}
}
}
public类CheckBoxListView扩展了ListActivity实现了McClickListener{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//模拟数据
字符串[]值=新字符串[]{“Android”、“iPhone”、“WindowsMobile”,
“黑莓”、“WebOS”、“Ubuntu”、“Windows7”、“Max OS X”,
“Linux”、“OS/2”};
//android的简单列表项多选是CheckedTextView
//稍后尝试创建自己的;)
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple\u list\u item\u多选,值);
getListView().setOnItemClickListener(此);
setListAdapter(适配器);
}
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
CheckedTextView项=(CheckedTextView)arg1;
//改变颜色的逻辑在这里!
如果(item.isChecked()){
item.setTextColor(颜色为黑色);
项。设置已检查(假);
}
否则{
项目。setTextColor(颜色为红色);
item.setChecked(真);
}
}
}
答案很简单!有一个名为CheckedTextView
的组件,它是TextView
和复选框的组合。
这个组件可能会简化您的逻辑,让您可以自由地修改列表的监听器中的任何内容
我为你写了一个例子:
public class CheckBoxListView extends ListActivity implements OnItemClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Mock data
String[] values = new String[] { "Android", "iPhone", "WindowsMobile",
"Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
"Linux", "OS/2" };
//android's simple_list_item_multiple_choice is a CheckedTextView
//try creating your own later ;)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice, values);
getListView().setOnItemClickListener(this);
setListAdapter(adapter);
}
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
CheckedTextView item = (CheckedTextView) arg1;
//The change color logic is here!
if(item.isChecked()) {
item.setTextColor(Color.BLACK);
item.setChecked(false);
}
else {
item.setTextColor(Color.RED);
item.setChecked(true);
}
}
}
public类CheckBoxListView扩展了ListActivity实现了McClickListener{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//模拟数据
字符串[]值=新字符串[]{“Android”、“iPhone”、“WindowsMobile”,
“黑莓”、“WebOS”、“Ubuntu”、“Windows7”、“Max OS X”,
“Linux”、“OS/2”};
//android的简单列表项多选是CheckedTextView
//稍后尝试创建自己的;)
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple\u list\u item\u多选,值);
getListView().setOnItemClickListener(此);
setListAdapter(适配器);
}
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
CheckedTextView项=(CheckedTextView)arg1;
//改变颜色的逻辑在这里!
如果(item.isChecked()){
item.setTextColor(颜色为黑色);
项。设置已检查(假);
}
否则{
项目。setTextColor(颜色为红色);
item.setChecked(真);
}
}
}
当你说“列表项应更改颜色”时,这是指背景、文本、复选框吗?你可以检查以下链接并得到答案。toadzky,我的意思是ListView的项目完全更改了颜色,或者当你说“列表项应更改颜色”时,这是指背景、文本、,复选框?您可以检查以下链接并获得答案。toadzky,我的意思是ListView的项目完全改变了它的颜色,或者说我不明白的主要问题是CheckBox的click listener如何影响ListView的项目。下面是一个例子:我不明白的主要问题是CheckBox的click listener如何影响ListView的项目。下面是一个例子:非常感谢!你的帖子是唯一给我指明正确方向的帖子!非常感谢你!你的帖子是唯一给我指明正确方向的帖子!