Java ListView未在下一位置保存项目,继续替换
我正在创建一个简单的“便笺”应用程序,但当用户尝试保存新便笺时,它会替换当前便笺。请帮助我,告诉我问题出在哪里Java ListView未在下一位置保存项目,继续替换,java,android,android-studio,Java,Android,Android Studio,我正在创建一个简单的“便笺”应用程序,但当用户尝试保存新便笺时,它会替换当前便笺。请帮助我,告诉我问题出在哪里 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sharedPreferences = this.getSharedPrefer
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = this.getSharedPreferences("com.sibi.notes",Context.MODE_PRIVATE);
listView = findViewById(R.id.listView);
list = new ArrayList<String>();
list.add("");
list.add("Add a new note");
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
long addNote = listView.getItemIdAtPosition(1);
if (id == addNote){
intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(intent);
}
}
});
String text = sharedPreferences.getString("Note","");
if(text != ""){
list.add(text);
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedReferences=this.getSharedReferences(“com.sibi.notes”,Context.MODE\u PRIVATE);
listView=findViewById(R.id.listView);
列表=新的ArrayList();
列表。添加(“”);
列表。添加(“添加新注释”);
adapter=newarrayadapter(这是android.R.layout.simple\u list\u item\u 1,list);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
long addNote=listView.getItemIdAtPosition(1);
if(id==addNote){
intent=newintent(getApplicationContext(),SecondActivity.class);
星触觉(意向);
}
}
});
String text=SharedReferences.getString(“注意”,“注意”);
如果(文本!=“”){
列表。添加(文本);
}
}
更改适配器的数据时,请使用adapter.notifyDatasetchanged()或adapter.notifyItemInserted(位置)或adapter.notifyItemRemoved(位置)或。。。或notifyAll()(在活动中)。如果您的数据量很大,请根据您的操作使用notifyItemXX。如果这不是您的解决方案,您可以再次使用更改的数据设置适配器(此处是您的更改列表)请清除您的问题,当您在列表中添加注释时,只需调用adapter.notifydatasetchange()更新列表。在添加新注释的位置发布完整代码。