2017-02-14 111 views
0

我创建了包含ProgressDialog及其方法的Activity。android在构造函数中创建ProgressDialog

public class ProgressActivity extends AppCompatActivity implements Thread.UncaughtExceptionHandler { 

    public final ProgressDialog progressDialog; 

    public void dismissPD() { 
     if (progressDialog != null && progressDialog.isShowing()) { 
      progressDialog.dismiss(); 
     } 
    } 

    public void setPDMessage(String msg) { 
     progressDialog.setMessage(msg); 
    } 

    public void showPD(String msg) { 
     ProgressDialog.show(this, "", msg); 
    } 

    @Override 
    public void uncaughtException(Thread thread, Throwable ex) { 
     ex.printStackTrace(); 
    } 

    public ProgressActivity() { 
     progressDialog = new ProgressDialog(this); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     dismissPD(); 
    } 

} 

现在,我从它延长我的新的活动,但我得到NullpointerException内constructur上progressDialog = new ProgressDialog(this) 依我之见,我有一个错误的上下文构造运行时。我有没有正确的方法来实现它?

+0

progressDialog =新ProgressDialog(youractivity.this) – Sasi

+1

progressDialog =新ProgressDialog(本);将此移至活动创建方法。 –

+0

我想在父活动上取得进展Dialog private。那可能吗? – Rainmaker

回答

0

我通过重写oncreate评判主活动的解决了这个问题:

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    progressDialog = new ProgressDialog(this); 
}