определение выбора с помощью диалогового окна оповещения (радио-кнопки) - PullRequest
1 голос
/ 23 февраля 2012

У меня есть всплывающее окно, которое я хочу создать, у которого будет 3 варианта.(Блокировать, разблокировать, удалить).Ниже у меня есть кнопка Подтвердить | Отмена.Я хотел бы видеть, какая кнопка нажата, и на основании этого будет отображаться тост, соответствующий выбору.Я написал некоторый код, чтобы показать, что я пытаюсь сделать.Очевидно, блок if items [item] == не будет работать, но в упрощенном смысле это то, что я пытаюсь сделать.Может кто-нибудь показать мне, как я написал бы OnClickListener, чтобы зафиксировать, какая кнопка была нажата и как отличить ее при нажатии подтверждения?

Код:

package com.popup;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;



public class PopupActivity extends Activity { 


    String TAG = "PopUpActivity";
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        BlockUnblockUninstallPopUp("");
        String TAG = "PopUpActivity";
    }
    public void BlockUnblockUninstallPopUp(final String PackageName){       
        //Items you would like to list as options.
         final CharSequence[] items = {"Block", "UnBlock", "Uninstall"};
         String flag = null;
          AlertDialog.Builder builder = new AlertDialog.Builder(PopupActivity.this);

        //Title of Popup
          builder.setTitle("What would you like to do?"); 

          builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
        //When you click the radio button
              public void onClick(DialogInterface dialog, int item) {

              } 
          }); 

        //When you click Confirm
          builder.setPositiveButton("Confirm", 
           new DialogInterface.OnClickListener() { 
                public void onClick(DialogInterface dialog, int item) {
                  if(items[item] == "Block") 
                  {
                Toast.makeText(PopupActivity.this,PackageName + " Blocked.", Toast.LENGTH_SHORT).show();
                Log.d(TAG,PackageName + " Blocked.");
                  }
                  if(items[item] == "Unblock") 
                  {
                Toast.makeText(PopupActivity.this,PackageName + " Unblocked.", Toast.LENGTH_SHORT).show();
                  Log.d(TAG,PackageName + " Unblocked.");  
                  }
                  if(items[item] == "Uninstall") 
                  {
                  Toast.makeText(PopupActivity.this,PackageName + " Uninstalled.", Toast.LENGTH_SHORT).show(); 
                Log.d(TAG,PackageName + " Uninstalled.");
                  }
            } 
           }); 
        //When you click Cancel, Leaves PopUp.
          builder.setNegativeButton("Cancel", 
           new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int id) { 
            } 
           }); 
        //Creates the AlertDialog  
          AlertDialog alert = builder.create(); 

        //Starts the Popup.
          alert.show(); 


      } 

} 

1 Ответ

5 голосов
/ 23 февраля 2012
  int i;
  builder.setSingleChoiceItems(items, -1,
                    new DialogInterface.OnClickListener() {
                        // When you click the radio button
                        public void onClick(DialogInterface dialog, int item)                   {

                                i=item;
                        }
                    });

    builder.setPositiveButton("Confirm",
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int item) {

                        if (items[i] == "Block") {
                            Toast.makeText(PopupActivity.this,
                                    PackageName + " Blocked.",
                                    Toast.LENGTH_SHORT).show();
                            Log.d(TAG, PackageName + " Blocked.");
                        }
                        if (items[i] == "UnBlock") {
                            Toast.makeText(PopupActivity.this,
                                    PackageName + " Unblocked.",
                                    Toast.LENGTH_SHORT).show();
                            Log.d(TAG, PackageName + " Unblocked.");
                        }
                        if (items[i] == "Uninstall") {
                            Toast.makeText(PopupActivity.this,
                                    PackageName + " Uninstalled.",
                                    Toast.LENGTH_SHORT).show();
                            Log.d(TAG, PackageName + " Uninstalled.");
                        }
                    }
                });
...