コンテキストをアクティビティからAsyncTaskクラスに渡そうとしています。問題は、コンテキストがnullであるということです。
私のAsyncTaskクラスには、次のものがあります
public class LoginService extends AsyncTask<String, Void, String> {
....
public Context context;
public LoginService(){
}
public LoginService(String username, String password){
this.username=username;
this.password=password;
}
@Override
protected String doInBackground(String... params) {
String userID = login(username, password);
return userID;
}
protected void onPostExecute(String result){
loginSuccess = result;
if (loginSuccess!=fail){
Intent casesActivity = new Intent(context, CasesActivity.class);
casesActivity.putExtra("username", result);
context.startActivity(casesActivity);
}
public void setContext(Context newContext){
context = newContext;
}
そして、私のアクティビティでは、ボタンをクリックすると、次のコードが表示されます。
public void onClick(View view) {
if ((editTextPassword.getText().toString() != null & editTextUsername.getText().toString() != null)){
new LoginService().setContext(getApplicationContext());
new LoginService(editTextUsername.getText().toString(), editTextPassword.getText().toString()).execute();
}
else{
//Display Toaster for error
Toast.makeText(getApplicationContext(),"Please enter your details", Toast.LENGTH_LONG).show();
}
}
インテントが作成されることはなく、コンテキストがnullであるため、アプリケーションが突然クラッシュします。この問題の解決策が見つからないようです。