Java 如何将项目设置为在警报对话框中选中?
我正在显示一个警报对话框来选择列表。现在我想显示在警报对话框中选择的默认列表。我已将自定义适配器附加到列表中。我在对话框中使用了setSingleChoiceItems 为此,我已将第二个参数设置为0,但仍然无法看到所选项目 代码: 编辑: 已删除.Create()方法。它显示警报对话框初始化错误Java 如何将项目设置为在警报对话框中选中?,java,android,android-alertdialog,selecteditem,Java,Android,Android Alertdialog,Selecteditem,我正在显示一个警报对话框来选择列表。现在我想显示在警报对话框中选择的默认列表。我已将自定义适配器附加到列表中。我在对话框中使用了setSingleChoiceItems 为此,我已将第二个参数设置为0,但仍然无法看到所选项目 代码: 编辑: 已删除.Create()方法。它显示警报对话框初始化错误 public void showCustomList() { mAllLists = new ArrayList<>(); mAllLists
public void showCustomList() {
mAllLists = new ArrayList<>();
mAllLists = mListTableHelper.getAllList();
final ListData taskList = new ListData();
taskList.setId(100000000);
taskList.setTitle("Default List");
mAllLists.add(0, taskList);
alertDialog = new AlertDialog(AddTaskActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.tablelist, null, false);
ListView lv = (ListView) convertView.findViewById(R.id.tableslist);
final ListItemAdapter adapter = new ListItemAdapter(AddTaskActivity.this,mAllLists,selectedItem);
alertDialog.setAdapter(adapter,null);
alertDialog.show();
}
public void showCustomList(){
mAllLists=newarraylist();
mAllLists=mListTableHelper.getAllList();
最终ListData任务列表=新建ListData();
任务列表.setId(100000000);
taskList.setTitle(“默认列表”);
添加(0,任务列表);
alertDialog=新建alertDialog(AddTaskActivity.this);
LayoutInflater充气机=getLayoutInflater();
视图转换视图=(视图)充气器。充气(R.layout.tablelist,null,false);
ListView lv=(ListView)convertView.findViewById(R.id.tableList);
final ListItemAdapter adapter=新ListItemAdapter(AddTaskActivity.this,mAllLists,selectedItem);
alertDialog.setAdapter(适配器,null);
alertDialog.show();
}
这里怎么了?谢谢..在适配器类的getViewMethod末尾添加以下代码:
viewHolder.rb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) {
if(!isFirstTime) {
YouDialogHoldingClass.itemSelected(position);
}
else {
isFirstTime = false;
}
//selectedItem = position;
//notifyDataSetChanged();
}
}
});
if(position == selectedItem) {
isFirstTime = true;
viewHolder.rb.setChecked(true);
} else {
viewHolder.rb.setChecked(false);
}
return convertView;
设置以下方法,而不是设置singleChoiceItems()方法:
alertDialog.setAdapter(adapter, null);
在显示对话框的类中创建静态方法:
public static void itemSelected(int tempPos) {
// do what you want on item selection....
}
按如下方式显示对话框:
public void showCustomList() {
mAllLists = new ArrayList<>();
mAllLists = mListTableHelper.getAllList();
final ListData taskList = new ListData();
taskList.setId(100000000);
taskList.setTitle("Default List");
mAllLists.add(0, taskList);
AlertDialog.Builder builder = new AlertDialog.Builder(AddTaskActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.tablelist, null, false);
ListView lv = (ListView) convertView.findViewById(R.id.tableslist);
final ListItemAdapter adapter = new ListItemAdapter(AddTaskActivity.this,mAllLists,selectedItem);
builder.setAdapter(adapter, null);
alertDialog = builder.create();
alertDialog.show();
}
public void showCustomList(){
mAllLists=newarraylist();
mAllLists=mListTableHelper.getAllList();
最终ListData任务列表=新建ListData();
任务列表.setId(100000000);
taskList.setTitle(“默认列表”);
添加(0,任务列表);
AlertDialog.Builder=新建AlertDialog.Builder(AddTaskActivity.this);
LayoutInflater充气机=getLayoutInflater();
视图转换视图=(视图)充气器。充气(R.layout.tablelist,null,false);
ListView lv=(ListView)convertView.findViewById(R.id.tableList);
final ListItemAdapter adapter=新ListItemAdapter(AddTaskActivity.this,mAllLists,selectedItem);
setAdapter(适配器,null);
alertDialog=builder.create();
alertDialog.show();
}
您必须在ListItemAdapter类中执行此操作。传递适配器构造函数中的默认位置,并选择该位置集。您可以通过代码解释我吗@Kanchanchowdhury是否可以发布ListItemAdapter类的代码?请使用“点击”适配器类。请检查编辑的问题@KanchanChowdhuryI希望在代码中获取listId时从listdata获取listId。怎么到这里来?在这里,我不是在申请onClickLitener@Kanchan Chowdhuryalso对话框无法接近项目选择@Kanchan Chowdhurall工作得很好。。但对话框不会在项目选择时被忽略。我应该在哪里调用警报对话框的解除方法@Kanchan ChowdhuryYou可以在itemSelected(int tempPos)方法中关闭对话框。在这种情况下,alertDialog实例应该声明为globaly,并且应该是静态的@坎赞乔杜里
alertDialog.setAdapter(adapter, null);
public static void itemSelected(int tempPos) {
// do what you want on item selection....
}
public void showCustomList() {
mAllLists = new ArrayList<>();
mAllLists = mListTableHelper.getAllList();
final ListData taskList = new ListData();
taskList.setId(100000000);
taskList.setTitle("Default List");
mAllLists.add(0, taskList);
AlertDialog.Builder builder = new AlertDialog.Builder(AddTaskActivity.this);
LayoutInflater inflater = getLayoutInflater();
View convertView = (View) inflater.inflate(R.layout.tablelist, null, false);
ListView lv = (ListView) convertView.findViewById(R.id.tableslist);
final ListItemAdapter adapter = new ListItemAdapter(AddTaskActivity.this,mAllLists,selectedItem);
builder.setAdapter(adapter, null);
alertDialog = builder.create();
alertDialog.show();
}