こんにちは私はMySQLデータベースにアクセスするログインページを作成しています。しかし、私はActivity
常に、終了する前に失敗/成功をチェックするコードを実行しますAsyncTask
。
メソッドを使用してみasynctask.get()
ましたが、UIがフリーズし、機能しません。
内で結果チェッカーメソッドを呼び出す必要があるというこの回答を試しましonPostExecute()
た。
しかし、成功/失敗を表示するようにTextViewを変更する必要があるNullPointerException
ため、内部でTextViewをインスタンス化するために結果になりますonCreate()
。
TextViewのインスタンス化はコンストラクターに移動できません。これは、を返すためですNullPointerException unable to instantiate activity ComponentInfo
。
Login.java
public class Login extends Activity{
//declare global Views here
protected void onCreate(Bundle bundle){
//Setup views
}
protected void onClick(View v){
//Setup necessary variables
AsyncClass async = new AsyncClass(this);
async.execute(username, password);
}
public void checkSuccess(boolean success){
if(success)
textView1.setText("Success");
else
textView1.setText("Failed");
}
}
AsyncClass.java
public class AsyncClass extends AsyncTask<String, String, JSONObject>{
protected JSONObject doInBackground(String... params){
//access database
}
protected void onPostExecute(JSONObject json){
//read the json result
Login login = new Login();
login.checkSuccess(true);
}
}
解決策はありますか?ありがとう