私はisUserExistという名前の関数を持っています。この関数は、ユーザがこのメールアドレスを持つデータベースに存在するかどうかをチェックします。AndroidのString Request Volleyからのクラス変数の設定
stringrequestでは、isUserExist変数を "true"に設定しました。funcの最後で、funcはisUserExistを返します。
問題は、文字列request.itでtrueに設定しても、常にfalseを返します。これはifステートメントでtrueに設定されます。
をAND関数は次のとおりです:
はそれのクラス宣言のように私が検索しましたと、これらのアイデアを見つける:やった
private boolean isUserExist()
{
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_USER_EXIST, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (error) {
// setting isUserExist = true
isUserExist = true;
//Log.w("debug1",String.valueOf(isUserExist);)
//returns true;
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("email", mail);
return params;
}
};
AppController.getInstance().addToRequestQueue(strReq);
//Log.w("debug2",String.valueOf(isuserExist));
//returns false
return isUserExist;
}
私がこれまでしてみてください。 1)to make static
2)boolean result[] = new boolean[1];
を宣言し、関数result return [0]の終わりを宣言しました。これはString Requestでtrueになりました。 3)isUserExistをローカルとして宣言するvariable.boolean isUserExist = false; funcの始まりで。 4)全力平準化では、boolean isUserExist;
の代わりにboolean isUserExist = false
の代わりに
のいずれかが動作します。
私は実際にこれを行いました。質問を編集しました。 –