gpt4 book ai didi

android - 将 Web 服务数据存储到共享首选项

转载 作者:搜寻专家 更新时间:2023-11-01 07:44:14 26 4
gpt4 key购买 nike

.为什么每次都投反对票.. 我是 android 的新手 ;( 。你的解决方案可能会帮助其他人..我有一个应用程序。在登录时,我想将数据存储到共享首选项。

我正在尝试将数据从服务器保存到 Shared Preferences 中。我正在从服务器成功接收数据

我试过了,但是有一些错误

{"Login":"Success","Login Details":[{"name":"abc","place":"abcdd","cityname":"asdf"}]}

代码是:

  public class login extends AsyncTask<Void, Void, Void> {

InputStream ins;
String status,details, result, s = null, data = "", js;
int ss;
int responseCode;

@Override
protected void onPreExecute() {
super.onPreExecute();

}

@Override
protected Void doInBackground(Void... params) {
StringBuilder sb = new StringBuilder();
ArrayList al;
try {
URL url =new URL(BuildConfig.url);

String param = "username=" + uname + "&password=" + pass2;
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(15000);
connection.setReadTimeout(15000);
connection.setDoInput(true);
connection.setDoOutput(true);

OutputStream os = connection.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
bw.write(param);
bw.flush();
bw.close();

responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
}
data = sb.toString();
JSONObject json = new JSONObject(data);

status = json.getString("Login");


} catch (MalformedURLException e) {
Log.i("MalformedURLException", e.getMessage());
} catch (IOException e) {
Log.i("IOException", e.getMessage());
} catch (JSONException e) {
Log.i("JSONException", e.getMessage());
}

return null;
}

protected void onPostExecute(Void result) {
super.onPostExecute(result);

String status1 = status.trim();


if (status1.equals("Success")) {

try {
JSONObject jsonObject = new JSONObject(status1);
JSONArray array=jsonObject.getJSONArray("Login Details");

for (int i=0;i<array.length();i++){


jsonObject = array.getJSONObject(i);

name= jsonObject.getString("name");
place= jsonObject.getString("place");
cityname = jsonObject.getString("cityname");


}
} catch (JSONException e) {
e.printStackTrace();
}

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = sharedPreferences.edit();

editor.putString("name", name);
editor.putString("place", place);
editor.apply();
Toast.makeText(Login.this,name+":"+cityname+":"+mobileno,Toast.LENGTH_SHORT).show();

}
else {
Toast.makeText(Login.this, "Username or Password is Incorrect", Toast.LENGTH_LONG).show();
}



}

}

最佳答案

您的“JSONArray”仅包含一个 JSONObject 和您的使用循环

try {
JSONObject jsonObject = new JSONObject(status1);
JSONArray array=jsonObject.getJSONArray("Login Details");
//"Login Details":[{"name":"abc","place":"abcdd","cityname":"asdf"}] only one object
for (int i=0;i<array.length();i++){


jsonObject = array.getJSONObject(i);

name= jsonObject.getString("name");
place= jsonObject.getString("place");
cityname = jsonObject.getString("cityname");


}
} catch (JSONException e) {
e.printStackTrace();
}

希望你能理解,这个提示对你有用并且请让您在解析和打印中也使用相同的变量

关于android - 将 Web 服务数据存储到共享首选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48031311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com