我在我的活动中使用ProgressDialog,该活动是从非活动类调用的。 它抛出一个错误。以下是我试图使用它无法实现的ProgressDialog的两个类。
MainActivity.java
public class LoginPage extends Activity {
LoginH appLogin;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button loginButton = (Button) findViewById(R.id.bLogin);
context = LoginPage.this;
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
sDefault = defaultText.getText().toString();
appLogin = new LoginH(context);
appLogin.execute(sDefault);
}
});
}
}
LoginH.java
public class LoginH extends AsyncTask<String, Void, String> {
String urlLogin;
private Context context;
public LoginHmg(Context context){
this.context = context;
}
ProgressDialog prg = new ProgressDialog(context);
@Override
protected String doInBackground(String... params) {
urlLogin ="xxx"
WebServiceT wLoginApp = new WebServiceT();
return wLoginApp.getMethod(urlLogin);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
prg.show();
prg.setMessage("Loading...");
prg.setCancelable(false);
}
}
答案 0 :(得分:1)
初始化ProgressDialog
onPreExecute
@Override
protected void onPreExecute() {
super.onPreExecute();
prg = new ProgressDialog(context);
prg.show();
prg.setMessage("Loading...");
prg.setCancelable(false);
}
答案 1 :(得分:1)
将ProgressDialog的初始化移动到构造函数中。在当前的初始化点,上下文可能是空的。