我对一个列表视图进行了OnItemClick攻击,在onItemClick()中,它打开了一个带有单选按钮Cancel和Select的对话框。在对话框中,我想我需要某种clickListener或itemSelectedListener,这样我就可以传递他们选择的listview项的值。
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0) {
CheckBox checkBox = (CheckBox) mRoot.findViewById(R.id.cbRowCheckBox);
checkBox.setChecked(!checkBox.isChecked());
}
if(position == 1) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.sync_frequency);
ListView listView = new ListView(getActivity());
listView.setOnItemClickListener(new OnItemClickListener()); <-----
String[] syncOptions = mSyncOptions;
ArrayAdapter<String> modeAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.select_dialog_singlechoice, android.R.id.text1, syncOptions);
builder.setSingleChoiceItems(modeAdapter, 0, null);
builder.setView(listView);
builder.setPositiveButton(R.string.sync_select,null);
builder.setNegativeButton(R.string.sync_cancel,null);
final Dialog dialog = builder.create();
dialog.show();
}
}
});但是我得到一个错误,说不能实例化AdapterView.OnItemClickListener类型。最好的路线是什么,或者我如何解决这个问题,这样我才能让代码知道用户选择了哪个单选按钮?谢谢!
发布于 2013-07-12 00:12:57
如果我理解正确的话,您希望在RadioButton为checked时使用listener。对于此用法,onCheckedChangeListener
您可以使用第二个参数来获取所检查的RadioButton的id,然后您可以从那里对它执行任何您需要的操作。
yourRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId)
{
if (checkedId == R.id.some_id)
{
// do something
}
});发布于 2013-07-12 00:17:06
AlertDialog有使用setItems() method的built in support for lists -没有理由定制你自己的ListView。
https://stackoverflow.com/questions/17598317
复制相似问题