Java 如何将项目设置为在警报对话框中选中?

Java 如何将项目设置为在警报对话框中选中?,java,android,android-alertdialog,selecteditem,Java,Android,Android Alertdialog,Selecteditem,我正在显示一个警报对话框来选择列表。现在我想显示在警报对话框中选择的默认列表。我已将自定义适配器附加到列表中。我在对话框中使用了setSingleChoiceItems 为此,我已将第二个参数设置为0,但仍然无法看到所选项目 代码: 编辑: 已删除.Create()方法。它显示警报对话框初始化错误 public void showCustomList() { mAllLists = new ArrayList<>(); mAllLists

我正在显示一个警报对话框来选择列表。现在我想显示在警报对话框中选择的默认列表。我已将自定义适配器附加到列表中。我在对话框中使用了setSingleChoiceItems

为此,我已将第二个参数设置为0,但仍然无法看到所选项目

代码:

编辑:

已删除.Create()方法。它显示警报对话框初始化错误

    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();

}