我正在使用CheckedTextView中的ListView。 要更改CheckedTextView框(选中/取消选中),我正在使用此方法:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
...
SoundDialog.Builder alert;
v.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
switch (soundPreference.getType()) {
case BOOLEAN:
CheckedTextView checkedTextView = (CheckedTextView) v;
if (checkedTextView.isChecked()){
checkedTextView.setCheckMarkDrawable(R.drawable.ic_blue);
} else {
checkedTextView.setCheckMarkDrawable(R.drawable.ic_red);
}
boolean checked = !checkedTextView.isChecked();
((CheckedTextView) v).setChecked(checked);
...
这有效但有问题,该方法在listview监听器(onListItemClick (ListView l, View v, int position, long id) {...
)内执行
当您输入活动时,CheckedTextView将具有其默认图像,直到您单击该项并执行该方法。
如果在onListItemClick中创建CheckedTextView,我如何在onCreate(if (checkedTextView.isChecked ()) {...
)中实现此方法?
我搜索了很多但找不到答案。
我感谢任何帮助
提前感谢。
答案 0 :(得分:1)
您必须确定是否必须在ListAdapter类的getView()方法中检查CheckedTextView。监听器中的代码只有在生成特定的Listener事件时才会执行,除非您在onCreate()方法中写入,否则不会执行Listener代码。
抱歉我的英语.....