1

配列内で選択した項目の値を取得しようとしています。これは私のコードです:

    final String items[] = {"Blue","Green","Orange"};
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);  


    alert.setTitle("Money Maker");
    alert.setIcon(R.drawable.ic_launcher);


    alert.setMultiChoiceItems(items, checkedItems,  new 
    DialogInterface.OnClickListener() {

        @Override
        public void onClick(final DialogInterface dialog, final int which) {

            String value = items.toString();
            Toast.makeText(getApplication(), value, Toast.LENGTH_LONG).show();
        }
    });


    alert.show();

選択したアイテムの値を取得して Toast 内に表示するにはどうすればよいですか? 前もって感謝します。

4

6 に答える 6

2

MultiChoice AlertDialog から選択された項目を取得します。

ArrayList<String> selectedItems=new ArrayList<String>();
        final CharSequence[] items = { "Blue","Green","Orange"};
        AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
        builder.setTitle("Money Maker");

        builder.setMultiChoiceItems(items, null,new OnMultiChoiceClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                if (isChecked){
                    selectedItems.add(items[which].toString());
                }
                else{
                   if(selectedItems.contains(items[which].toString()))
                       selectedItems.remove(items[which].toString());
                }
            }
        });
        builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                //Get all selectedItems here..
                Toast.makeText(mActivity, "Total selected item ="+selectedItems.size(), Toast.LENGTH_SHORT).show();
                for (int j = 0; j < selectedItems.size(); j++) {
                    System.out.println("Selected item.."+selectedItems.get(j));
                }
            }
        });

       AlertDialog alert = builder.create();
       alert.show();

これがあなたmActivityの活動の参照です。

于 2013-08-14T05:41:56.800 に答える
1

これを試して

alert.setMultiChoiceItems(items, null,
                new OnMultiChoiceClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which,
                            boolean isChecked) {
                        Toast.makeText(getApplication(), items[which],
                                Toast.LENGTH_LONG).show();

                    }
                });
于 2013-08-14T05:28:09.847 に答える
1

a) 選択された値と選択された値を表示し、選択されていない値を削除するには

Vector selectedItems = new Vector();
String items[] = { "Blue", "Green", "Orange" };
AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Money Maker");
alert.setIcon(R.drawable.ic_launcher);

builder.setMultiChoiceItems(items, null,
    new DialogInterface.OnMultiChoiceClickListener() {
   @Override
   public void onClick(DialogInterface dialog, int which, boolean isChecked) {
          if (isChecked) {
              Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
              selectedItems.addElement(items[which]);
          } else {
                if (selectedItems.contains(items[which])) {
                    selectedItems.removeElement(items[which]);                      
           }
}
}).show();

whichb)選択した値のみを表示するには変数で取得した場所を直接渡すことができます

Toast.makeText(getApplication(), items[which], Toast.LENGTH_LONG).show();
于 2013-08-14T05:19:39.143 に答える
0

参照してくださいitems[wich]- それはあなたのアイテムです

于 2013-08-14T05:18:49.103 に答える
0

選択したアイテムのインデックスを指定する必要があります:

String value=items[which].toString();

コードの残りの部分は同じままです。

于 2013-08-14T05:22:51.073 に答える