2011-01-31 2 views
16

У меня есть кнопка, и я бы хотел открыть диалог при нажатии. Это мой код:открыть диалог, когда я нажимаю кнопку

Button more = (Button) findViewById(R.id.more); 
more.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     //Intent myIntent = new Intent(view.getContext(), agones.class); 
     //startActivityForResult(myIntent, 0); 

     AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
     alertDialog.setTitle("hi"); 
     alertDialog.setMessage("this is my app"); 

     alertDialog.setButton("Continue..", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      // here you can add functions 
     } 
     }); 
    } 
}); 
+0

Что не работает? – RoflcoptrException

+4

добавьте это в свой код alertDialog.show(); – ingsaurabh

+0

Конструктор AlertDialog.Builder (новый View.OnClickListener() {}) не определен –

ответ

32

Как сказал @Roflcoptr, вы не вызвали метод alertDialog.show(). поэтому ваш диалог не отображается.

Вот ваш отредактированный код:

Button more = (Button) findViewById(R.id.more); 
more.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     //Intent myIntent = new Intent(view.getContext(), agones.class); 
     //startActivityForResult(myIntent, 0); 


     AlertDialog alertDialog = new AlertDialog.Builder(<YourActivityName>this).create(); //Read Update 
     alertDialog.setTitle("hi"); 
     alertDialog.setMessage("this is my app"); 

     alertDialog.setButton("Continue..", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       // here you can add functions 
      } 
     }); 

     alertDialog.show(); //<-- See This! 
    } 

}); 

если вы пишете this вместо <ActivityName>.this, то он собирается взять ссылку на View.OnClickListener поскольку this в настоящее время доступны в нем. Вам нужно указать название своей деятельности.

+0

моя проблема в том, что затмение захватывает новый AlertDialog.Builder и говорит, что это не определено в onClick –

+1

AlertDialog alertDialog = new AlertDialog.Builder (ActivityName.this) .create(); – ingsaurabh

+3

при создании просто не давайте, так как вместо этого дайте myActivity.this ....... это сработает. –

-2
  final AlertDialog.Builder builder = new AlertDialog.Builder(this); 

      builder.setMessage("this is message"); 
      builder.setTitle("this is title"); 

      //Setting message manually and performing action on button click 
      builder.setMessage("Do you want to close this application ?");T 
      //This will not allow to close dialogbox until user selects an option 
      builder.setCancelable(false); 
      builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          Toast.makeText(this, "positive button", Toast.LENGTH_SHORT).show(); 
          //builder.finish(); 
         } 
        }); 
      builder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          // Action for 'NO' Button 
          Toast.makeText(this, "negative button", Toast.LENGTH_SHORT).show(); 
          dialog.cancel(); 
         } 
        }); 

      //Creating dialog box 
      AlertDialog alert = builder.create(); 
      //Setting the title manually 
      //alert.setTitle("AlertDialogExample"); 
      alert.show();