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 に答える