3

我有一个复选框对话框,我想通过默认检查设置它的一些值。

我的复选框对话框如下:

final String[] layers_name=new String[3];

for (int i=0;i<m_Renderer.m_Project.m_Layers.size();i++)
{
    layers_name[i]=m_Renderer.m_Project.m_Layers.get(i).m_LayerName;

}


this.m_listview=new AlertDialog.Builder(c);
m_listview.setTitle("Layers Information").setMultiChoiceItems(layers_name,null,new DialogInterface.OnMultiChoiceClickListener()
{
    @Override
public void onClick(DialogInterface dialog,int which,boolean ischecked)
    {
        if (ischecked)
        {}
        else
        {}

    }

}


).setPositiveButton("Ok", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {

    }
}


);
m_listview.show();

我在此对话框中有 3 个项目,每次打开此对话框时我都想检查其中的 2 个。

4

1 回答 1

9

在下面的:

m_listview.setTitle("Layers Information").setMultiChoiceItems(layers_name, null, 
                                 new DialogInterface.OnMultiChoiceClickListener()

您正在设置null检查位置的数组。

像这样创建一个布尔数组:

boolean[] checkedValues = new boolean[m_Renderer.m_Project.m_Layers.size()];

对于要检查的项目,将布尔值设置为 true。例如,如果您希望检查第一项:

checkedValues[0] = true;

然后,替换:

m_listview.setTitle("Layers Information").setMultiChoiceItems(layers_name, null,
                                new DialogInterface.OnMultiChoiceClickListener()

和:

m_listview.setTitle("Layers Information").setMultiChoiceItems(layers_name, checkedValues,
                                new DialogInterface.OnMultiChoiceClickListener()
于 2013-08-02T08:05:48.907 回答