我在自定义对话框中有一个单选按钮和textview。它有大约250个项目,所以我使用列表视图
我在单选按钮上设置OnCheckedStateListener,每当状态chagnes我解除侦听器中的对话框。我正在设置一个默认选中的项目。
但每当我第二次打开对话框时,在对话框打开之前调用OnCheckedStateListener并且整个应用程序崩溃。
我遵循持有人视图模式。有人可以建议我使用一些示例代码在这个场景中使用视图持有者模式的正确方法,或者您可以在网上指出任何好的材料。
在发布此问题之前,我已经搜索了很多。但没有任何帮助。
提前致谢。
编辑:
我也试过了onclickListener
,但是当我在对话框的可见视图中选择最顶部或最底部的时候,它有时不起作用...奇怪..
与onFocusChangeListener
相同。
编辑:
if (row == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecordHolder();
holder.txtTitle = (TextView) row.findViewById(R.id.item_text);
holder.radiobutton = (RadioButton)row.findViewById(R.id.radiobutton);
holder.radiobutton.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(buttonView.isChecked()){
// this call back listener will dismiss the dialog
// from the fragement where I have called
mCallbackListnr.stateUpdated(pPosition);
}
}});
row.setTag(holder);
} else {
holder = (RecordHolder) row.getTag();
}
Item item = data.get(position);
// i am setting the state as checked here
if(item.id.equals(selectedItem.id)){
holder.radiobutton.setChecked(true);
}else{
holder.radiobutton.setChecked(false);
}
holder.txtTitle.setText(item.getTitle());
}