2015-04-11 11 views
0

Я хочу, когда пользователь нажимает кнопку «Удалить», там появляется диалоговое окно с паролем. Этот диалог приходит только один time.I'm используя этот код:Запрос пароля приходит только в первый раз

public void run() { 

     Looper.prepare(); 

     while (!exit) { 

      // get the info from the currently running task 
      List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(MAX_PRIORITY); 
      String activityName = taskInfo.get(0).topActivity.getClassName(); 
      Log.d("topActivity", "CURRENT Activity ::" + activityName); 

      if (activityName.equals("com.android.packageinstaller.UninstallerActivity")) { 
       //Toast.makeText(context, "Uninstall Clicked", Toast.LENGTH_LONG).show(); 
       Intent startIntent = new Intent(this.context, Alert_Dialog.class); 
       startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       this.context.startActivity(startIntent); 
       exit = true; 
      } else if (activityName.equals("com.android.settings.ManageApplications")) { 
       Toast.makeText(this.context, "Back", Toast.LENGTH_LONG).show(); 
       exit = true; 
      } 
     } 
     Looper.loop(); 
    }//Run 

Я хочу, чтобы каждый раз, когда пользователь нажимает на Unistall строке должен прийти, ниже код в OnClick,

final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setView(promptsView); 
     final EditText userInput = (EditText) promptsView.findViewById(R.id.edit_text); 

     alertDialogBuilder 
       .setCancelable(false) 
       .setNegativeButton("OK", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog,int id) { 
           /** DO THE METHOD HERE WHEN PROCEED IS CLICKED*/ 
           String user_text = (userInput.getText()).toString(); 
           /** CHECK FOR USER'S INPUT **/ 
           if (user_text.equals("abc")) 
           { 
            Log.d(user_text, "HELLO THIS IS THE MESSAGE CAUGHT :)"); 
            Toast.makeText(myContext,"PAssword Correct",Toast.LENGTH_LONG).show(); 
            Alert_Dialog.this.finish(); 
            //Search_Tips(user_text); 

           } 
           else{ 
            Log.d(user_text,"string is empty"); 
            String message = "The password you have entered is incorrect." + " \n \n" + "Please try again!"; 
            AlertDialog.Builder builder = new AlertDialog.Builder(myContext); 
            builder.setTitle("Error"); 
            builder.setMessage(message); 
            builder.setPositiveButton("Cancel", null); 
            builder.create().show(); 
            Alert_Dialog.this.finish(); 

           } 
          } 
         }); 
//    .setPositiveButton("Cancel", 
//      new DialogInterface.OnClickListener() { 
//       public void onClick(DialogInterface dialog,int id) { 
//        Alert_Dialog.this.finish(); 
// 
//       } 
// 
//      } 
//    ); 
     AlertDialog alert = alertDialogBuilder.create(); 
     alert.show(); 
    } 
+0

пожалуйста показывают нам, что есть у сделано в 'onClick' – yummy

+0

OnClick, Он покажет подсказку. –

+0

Я думаю, что лучше поместить код в 'onClick', чтобы проверить дальше. – yummy

ответ

0

После диалога звонки dismiss(), вид, который вы установили для диалога, также будет уничтожен.

В вашем случае, эта линия установить вид,

alertDialogBuilder.setView(promptsView); 

Но когда диалог закрывается, вид promptsView разрушен,

The promptsView должна быть воссоздана в очередной раз использовать Это.

final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
promptsView = new PromptsView();//new or inflate the view 
//.... 
alertDialogBuilder.setView(promptsView);