在非 activity class 中使用 ProgressDialog
Use ProgressDialog in a non activity class
我在 activity 中使用从非 Activity Class 调用的 ProgressDialog。
它抛出一个错误。以下是我尝试使用无法实现的 ProgressDialog 的两个 class。
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);
}
}
在onPreExecute
中初始化ProgressDialog
@Override
protected void onPreExecute() {
super.onPreExecute();
prg = new ProgressDialog(context);
prg.show();
prg.setMessage("Loading...");
prg.setCancelable(false);
}
将 ProgressDialog 的初始化移到构造函数中。上下文在当前初始化点可能为空。
我在 activity 中使用从非 Activity Class 调用的 ProgressDialog。 它抛出一个错误。以下是我尝试使用无法实现的 ProgressDialog 的两个 class。
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);
}
}
在onPreExecute
ProgressDialog
@Override
protected void onPreExecute() {
super.onPreExecute();
prg = new ProgressDialog(context);
prg.show();
prg.setMessage("Loading...");
prg.setCancelable(false);
}
将 ProgressDialog 的初始化移到构造函数中。上下文在当前初始化点可能为空。