以下代码创建了ArrayAdapter
,并使用CheckedTextView
中的ListView.setItemChecked()
更改了每个onResume()
的状态。
这一切都很好。
有没有办法可以禁用(灰显)部分CheckedTextViews
?
我已尝试使用adapter.getView(position, null, listView)
,虽然这会返回CheckedTextView
个对象,但将其设置为setclickable(false)
却无效。我已经尝试更改其文本并更改状态,但它也没有做任何事情。
我怎样才能做到这一点?
以下是可以正常使用的代码:
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,
getResources().getStringArray(R.array.mode_declarations_array));
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
String learningSettings = settings.getString(Constants.LEARNING_SETTINGS, null);
int count = adapter.getCount();
if (learningSettings != null ) {
String[] values = learningSettings.split(",");
for (int i = 0; i< values.length; i++) {
boolean val = Boolean.parseBoolean(values[i]);
listView.setItemChecked(i, val);
}
}else {
for (int i = 0; i<count; ++i) {
listView.setItemChecked(i, true);
}
}
答案 0 :(得分:1)
创建自己的自定义适配器并覆盖isEnabled
功能。
class MyAdapter extends ArrayAdapter<String> {
public boolean areAllItemsEnabled() {
return false;
}
public boolean isEnabled(int position) {
// return false if position == position you want to disable
}
}