使用SharedPreference
在列表视图中输入文本时出现问题。将文本添加到ListView
并始终覆盖列表中的第一个项目。有人会帮忙吗?谢谢你的帮助。
头等舱
public class MainActivity extends AppCompatActivity {
private EditText et_enter;
private Button btn_dodaj, btn_second;
Activity context = this;
SharedPreference sharedPreference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
et_enter = (EditText) findViewById(R.id.et_enter);
btn_dodaj = (Button) findViewById(R.id.btn_dodaj);
btn_second = (Button) findViewById(R.id.btn_second);
btn_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, ListActivity.class));
}
});
sharedPreference = new SharedPreference();
btn_dodaj.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String task = et_enter.getText().toString();
sharedPreference.save(context, "LISTS", task);
}
});
}
}
第二课
public class ListActivity extends AppCompatActivity {
SharedPreference sharedPreference;
private ListView listview;
ArrayAdapter<String> adapter;
Activity context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
sharedPreference = new SharedPreference();
listview = (ListView) findViewById(R.id.listview);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
listview.setAdapter(adapter);
String string = sharedPreference.getValue(context);
adapter.add(string);
adapter.notifyDataSetChanged();
}
}
第三课
public class SharedPreference {
public SharedPreference() {
super();
}
public void save(Context context, String key, String text) {
// TODO Auto-generated method stub
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = data.edit();
editor.putString(key, text);
editor.commit();
}
public String getValue(Context context) {
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(context);
String dataSet = data.getString("LISTS", "None Available");
return dataSet;
}
}
照片:
答案 0 :(得分:0)
你实际上正在改变&#34; LISTS&#34;的价值。在依次打开SharedPreferences中的键,这是覆盖的原因。尝试使用不同的名称。
答案 1 :(得分:0)
我通过使用数据库解决了这个问题。感谢。