簡體   English   中英

使用Android獲取當前活動

[英]Get current Activity with 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);上創建它

在公共類中具有AlertDialog邏輯,並使用帶有傳遞上下文的方法進行調用。

例如:

showAlert(youractivitycontext);

使用Context作為當前活動。

您有多種選擇...您必須了解的內容:

您只能從活動中顯示AlertDialogs

您有多種選擇

  • 將活動實例作為參數傳遞給其他類的構造函數...然后您可以從任何地方調用活動

  • 使用通知(類不必是活動)

  • 檢查這個問題。 除此以外

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM