2015-05-28 4 views
0

У меня есть метод, который сканирует положение и вызывается на каждый вид деятельности у меня есть, каждый раз, когда А.Н. действия вызвать мне нужно, чтобы показать alertDialog, это код:Получить текущую активность с Android

AlertDialog.Builder builder = new AlertDialog.Builder(mMainActivity.this); 
         builder.setMessage("test") 
          .setCancelable(false) 
          .setPositiveButton("go", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            Intent intent = new Intent(mMainActivity.this,LocationDetails.class); 
            intent.putExtra("placeId",1); 
            startActivity(intent); 

           } 
          }) 
          .setNegativeButton("cancel", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 

            dialog.cancel(); 
           } 
          }); 
         AlertDialog alert = builder.create(); 
         alert.show(); 

Но как могу ли я создать предупреждение о текущей активности? Потому что теперь он создается только на AlertDialog.Builder(mMainActivity.this);

ответ

1

Имейте эту логику AlertDialog в открытый класс и выполняйте вызов с использованием метода с передающим контекстом.

Например:

showAlert(youractivitycontext); 

Context Используйте в качестве текущей деятельности.

1

У вас есть различные варианты ... то, что вы должны знать:

Вы можете показать AlertDialogs от деятельности только

У вас есть различные варианты

  • PASS вашу деятельность экземпляр как параметр в конструкторе других классов ..., то вы можете вызывать активность от везде

  • Используйте уведомления (класс не нужно быть активность)

  • Check this question. иначе

0
create class vis static method in vich you transfer "link" yours activitis 
for example from MainActivity call : 
DialogUtils.createSomeDialog(MainActivity.this); 
or from SecondActivity: 
DialogUtils.createSomeDialog(SecondActivity.this); 


    public class DialogUtils 
{ 
    public static void createSomeDialog(final Context context){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     builder.setMessage("test") 
       .setCancelable(false) 
       .setPositiveButton("go", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         Intent intent = new Intent(context,LocationDetails.class); 
         intent.putExtra("placeId",1); 
         context.startActivity(intent); 

        } 
       }) 
       .setNegativeButton("cancel", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 

         dialog.cancel(); 
        } 
       }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 
} 
Смежные вопросы