私は1つのアプリケーションを開発しており、jsonに基づいています。私はonSuccessメソッドで受け取られる他のクラスに1つのクラスからデータを渡したいと思います。私がデータを要求すると、データは正しく受信されますが、そのデータを他のクラスにコールすると、NULLポインタエラーが発生します。 私の方法はonSuccessから他のクラスにデータを渡すには?
@Override
protected Void doInBackground(Void... params1) {
RequestParams params;
params = new RequestParams();
params.add("username", str_emailId);
params.add("password", str_password);
params.add("action", action);
String str_result=constant.login(params);
Log.d("Result::--",str_result);
return null;
}
で、私のログイン方法は
public String login(RequestParams params1) {
client = new AsyncHttpClient();
client.post(Constant.check_login_user, params1, new TextHttpResponseHandler() {
@Override
public void onSuccess(int i, Header[] headers, String response) {
str_result = response;
Log.d("Str_Result: ", str_result);
}
@Override
public void onFailure(int statusCode, Header[] headers, String response, Throwable e) {
if (statusCode == 401) {
jsonString[0] = response;
Log.d("onFailure: ", jsonString[0]);
}
}
});
return str_result;
}
である私だ成功法上のデータと、それは大丈夫ログで印刷されますが、str_result変数を返すとき、それはnullを返し、私なりdoInBackground()メソッドでログを出力すると、nullポインタエラーが返ってきます。どうすればいいでしょうか?いずれにしても、あらかじめデータを印刷する方法を教えてください。
これは、非同期のhttpクライアントを使用しているためです。 onSuccessが起動する前に関数から値を返します。 –
私は非同期のhttpクライアントについて詳しくは分かりませんので、onSuccess()メソッドからdoInBackground()メソッドにデータを渡す方法はありますか? – Shailesh