0

Я использую ProgressDialog в своей деятельности, который вызывается из класса без активности. Его ошибка. Ниже приведены два класса, как я пытался использовать ProgressDialog, которого он не смог достичь.Использовать ProgressDialog в классе non-активности

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

Какая ошибка ??? –

+0

Можете ли вы напечатать stacktrace ошибки? –

+0

Приложение @JagadeshSeeram падает при инициализации этого ProgressDialog – Munchoo

ответ

1

Инициализируйте ProgressDialog в onPreExecute

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    prg = new ProgressDialog(context); 
    prg.show(); 
    prg.setMessage("Loading..."); 
    prg.setCancelable(false); 
} 
1

Перемещайте инициализацию ProgressDialog в конструктор. Возможно, что в текущей точке инициализации контекст равен нулю.