如何从id.setAdapter(adapter);
设置SharedPreferences
?我希望当应用关闭时,所有id.getText().toString()
都应该出现
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
private SharedPreferences atPrefs;
atPrefs = PreferenceManager.getDefaultSharedPreferences(Login.this);
id = (AutoCompleteTextView) findViewById(R.id.id);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, list);
id.setAdapter(adapter);
adapter.setNotifyOnChange(true);
id.setThreshold(1);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (id.getText().toString().length() >= 3) {
atPrefs.edit().putString(pos, id.getText().toString()).commit();
adapter.add(atPrefs.getString(pos, ""));
Intent nextscreen = new Intent(Login.this, Otp.class);
startActivity(nextscreen);
// finish();
}
}
});
使用以下代码解决
for (i = 0; i < k; i++) {
list.add(0, (String) prfs.getString(String.valueOf(i), "null"));
adapter.notifyDataSetChanged();
}
public void onClick(View arg0) {
if (id.getText().toString().length() >= 3) {
list.add(0, (String) id.getText().toString());
adapter.notifyDataSetChanged();
edit.putString(String.valueOf(i), id.getText().toString());
edit.putInt("counter", i + 1);
edit.apply();
id.setText("");
i = i + 1;
}
答案 0 :(得分:0)
你应该查看这个answer,保持SharedPreferences中的值并不是一个好主意。
此外,您没有正确使用共享首选项,只保存值,并且永远不会使用_context.getString将其恢复。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putStringArray("myarray", list);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
list = savedInstanceState.getStringArray("myarry");
}