通过Android获取当前活动

时间:2015-05-28 15:43:58

标签: java android

我有一个方法可以扫描位置并在我拥有的每个活动上调用,每次动作触发我需要显示一个alertDialog,这就是代码:

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);

上创建

3 个答案:

答案 0 :(得分:1)

在公共类中使用此AlertDialog逻辑,并使用传递上下文的方法进行调用。

例如:

showAlert(youractivitycontext);

使用Context作为您当前的活动。

答案 1 :(得分:1)

你有各种选择......你必须知道:

  

您可以从仅限活动

显示AlertDialogs

您有各种选择

  • 将您的活动实例作为参数传递给其他类的构造函数...然后您可以从任何地方调用活动

  • 使用通知(类不需要是活动)

  • Check this question.否则

答案 2 :(得分: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();
    }
}