我想实现一个Spinner,其中微调器项目将来自服务器端,我希望项目第一次来到微调器后,每当我重新打开该应用程序或微调器时,项目不会来自服务器端,项目应该在那里。下面是我的自定义微调器,其中国家名称来自服务器端。
// for country spinner
StringRequest sR = new StringRequest(Request.Method.POST, country_url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
ArrayList<String> arr = new ArrayList<String>(Arrays.asList(response.trim().split(",")));
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i).equals("India")) {
arr.remove(i);
}
}
arr.add(0, "Select Country");
arr.add(1, "India");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(EditDetails7.this, android.R.layout.simple_list_item_1, arr);
spinCountry.setAdapter(adapter);
for(int i=0; i < adapter.getCount(); i++) {
if (country.trim().equals(adapter.getItem(i).toString())) {
spinCountry.setSelection(i);
break;
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(EditDetails7.this, error.toString(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(sR);
答案 0 :(得分:1)
您需要将服务响应保存在本地存储中。要做到这一点,你可以做以下两件事之一:
1)您可以将数据保存在数据库中 2)您可以将数据保存在共享首选项中
这完全取决于您的要求。如果数据量巨大,我宁愿使用数据库,否则共享首选项是最佳选择。希望有所帮助。
以下是可能对您有所帮助的链接 对于SharedPreference
https://www.androidhive.info/2017/07/android-implementing-preferences-settings-screen/
对于数据库
https://www.androidhive.info/2011/11/android-sqlite-database-tutorial/