0

私はGoogleマップを使用しているため、チェックボックスをオンにすると、いくつかの写真がレイヤーに追加され、他のチェックボックスは別のレイヤーを追加します...最初のチェックボックスをオフにすると、それに関連する写真が削除され、同じことになります2番目のチェックボックスで発生します..問題は、最初のチェックボックスをオンにすると写真が追加され、次に関連するチェックボックスのチェックを外すと、2番目のチェックボックスが正常に機能している間に写真が削除されないことです?? 助けてください

押すとダイアログが表示されるボタンがあります。このダイアログにはチェックボックスが含まれています。.
クラスで次の変数を定義しました

     CharSequence[] items = {"Layer1", "Layer2"};
     boolean[] itemsChecked = new boolean[items.length];

On create メソッドで、次のように定義しました

      Button AddLayers = (Button) findViewById(R.id.addlayers) ; 
      AddLayers.setOnClickListener(this) ; 

その後、アクションで

public void onClick(View v) {
// TODO Auto-generated method stub

 showDialog(0);
}

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
    return new AlertDialog.Builder(this)
    //.setIcon(R.drawable.red_point)
    .setTitle("Add Layer")


      .setPositiveButton("OK", new DialogInterface.OnClickListener()
            {
                public void onClick(DialogInterface dialog, int id)
                {
                    SparseBooleanArray CheCked = ((AlertDialog) dialog).getListView().getCheckedItemPositions();
                    if (CheCked.get(0))
                    {
                         ...    
                        mapOverlays.add(custom);
                    }
                    else {
                        mapOverlays.remove(custom);
                    }


                    if (CheCked.get(1))
                    {
                        ......
                        mapOverlays.add(custom2);
                    }
                    else 
                    {
                        mapOverlays.remove(custom2)  ;
                    }



                }
4

2 に答える 2

0

こんにちは、私は解決策を見つけました...カスタムの定義がif(CheCked.get(0))内にあったためです...それはOncreat()にあるはずです

if (CheCked.get(0)) でカスタムを定義すると、チェックボックスをオンにするたびに新しいカスタムが作成され、新しいカスタムが定義されているため、削除する最初のカスタムが失われるためです。

助けようとしたすべての人に感謝します、本当に感謝しています

于 2012-07-11T10:00:07.517 に答える