2015-09-04 45 views
0

在我的Android應用程序中,我創建了一個用於處理常規功能的公用類,例如顯示警告對話框,操作日期函數。我顯示警報對話框只是通過傳遞文本消息來調用方法。我的問題是如何以編程方式關閉另一個類中的警告對話框?如何在沒有用戶交互的情況下關閉活動的警報對話框?

我的代碼流:

UtillClass2是具有在應用程序中使用common methods的類。

public class UtillClass2 { 
    public static void showAlert(Context context, String str) { 
     final Dialog dialog = new Dialog(context, 
       android.R.style.Theme_Translucent_NoTitleBar); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.common_alert); 
     dialog.setCancelable(true); 
     Button ok = (Button) dialog.findViewById(R.id.common_button); 
     TextView alerttxt = (TextView) dialog.findViewById(R.id.common_text1); 
     alerttxt.setText(str); 
     ok.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 
     dialog.show(); 
    } 
} 

而且我通過調用這樣

 UtillClass2.showAlert(QNowActivity.this, getResources() 
       .getString(R.string.available_err)); 

我的問題叫從我Activity警告對話框是我想通過編程方式從活動到關閉警告對話框?

+0

你應該返還對話框,因爲你怎麼在創建後它可以訪問它使用此警報dialgon? – tyczj

+0

你可以請將applicationcontext傳遞給對話框 –

回答

0

科瑞您的對話實例的全局實例如下圖所示:

private Dialog mDialog; // global class variable . 

關閉該對話框與mDialog.dismiss();

0

請嘗試下面的代碼,我瘦是對你有幫助。

public class UtilDialog { 
public final static int ALERT_DIALOG = 1; 

Context context; 
AlertDialog alertDialog; 

public UtilDialog(Context context) { 
    this.context = context; 
    Resources resources = context.getResources(); 
    alertDialog = new AlertDialog.Builder(context).create(); 
    alertDialog.setTitle(resources.getString(R.string.message)); 
    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, 
      resources.getString(R.string.ok), 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
       } 
      }); 

} 

public void showDialog(String message, int dialogCode) { 
    switch (dialogCode) { 
    case ALERT_DIALOG: 
     alertDialog.setMessage(message); 
     alertDialog.show(); 
     break; 
    } 

} 

public void dismissDialog(int dialogCode) { 
    switch (dialogCode) { 
    case ALERT_DIALOG: 
     alertDialog.dismiss(); 
     break; 
    } 
} 

}

,並在另一個類

UtilDialog utilDialog=new UtilDialog(this); 

utilDialog.showDialog(
        getResources().getString(R.string.all_fields), 
        UtilDialog.ALERT_DIALOG); 
utilDialog.dismissDialog(UtilDialog.ALERT_DIALOG); 
0
public class UtillClass2 { 

Dialog dialog; 

public static void showAlert(Context context, String str) { 
    dialog = new Dialog(context, 
      android.R.style.Theme_Translucent_NoTitleBar); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.common_alert); 
    dialog.setCancelable(true); 
    Button ok = (Button) dialog.findViewById(R.id.common_button); 
    TextView alerttxt = (TextView) dialog.findViewById(R.id.common_text1); 
    alerttxt.setText(str); 
    ok.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialog.dismiss(); 
     } 
    }); 
    dialog.show(); 
} 

public static void hideAlert() 
{ 
    if(dialog != null) 
    { 
     dialog.dismiss(); 
    } 
} 
} 
相關問題