Reputation: 391
I want to remove an item from ListView
, but I don't know how can I do it.
This is my code...
public void FLYNOTE_refresh() {
int i;
SharedPreferences Pref = getSharedPreferences("nnote", MODE_WORLD_READABLE); //созаётся файл настроек "nnote" и туда барыжиться вся хня
key = Pref.getInt("number", 0);
key++;
String lv_arr[] = new String[key];
for (i = 0; i < key; i++) {
lv_arr[i] = Pref.getString("n" + i, "none");
}
textView1.setText(String.valueOf(key));
listView1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
listView1.setTextFilterEnabled(true);
}
I want to remove an item with 0 id
,guide me to do that.
Upvotes: 1
Views: 8663
Reputation: 86948
If you do not want to display item 0, simply adjust the size of lv_arr
and change your for-loop:
public void FLYNOTE_refresh() {
int i;
SharedPreferences Pref = getSharedPreferences("nnote", MODE_WORLD_READABLE); //созаётся файл настроек "nnote" и туда барыжиться вся хня
key = Pref.getInt("number", 0);
String lv_arr[] = new String[key]; // One item smaller without "n0"
key++;
for (i = 1; i < key; i++) {
// Skip "n0" like this
lv_arr[i - 1] = Pref.getString("n" + i, "none");
}
textView1.setText(String.valueOf(key));
listView1.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lv_arr));
listView1.setTextFilterEnabled(true);
}
If you want to remove items while the app is running I suggest using a List<String>
rather than a String[]
:
public void FLYNOTE_refresh()
{
int i;
SharedPreferences Pref = getSharedPreferences("nnote", MODE_WORLD_READABLE); //созаётся файл настроек "nnote" и туда барыжиться вся хня
key = Pref.getInt("number", 0);
key++;
lv_arr = new ArrayList<String>();
for (i = 1; i < key; i++) {
lv_arr.add(Pref.getString("n" + i, "none"));
}
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lv_arr);
listView1.setAdapter(adapter);
listView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
lv_arr.remove(position);
adapter.notifyDataSetChanged();
}
});
}
Upvotes: 2
Reputation: 132972
You can delete an item from ListView as:
ArrayAdapter<String> adapterlist = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, lv_arr);
listView1.setAdapter(adapter1);
adapter1.notifyDataSetChanged();
listView1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
adapter1.remove(position);
adapter1.notifyDataSetChanged();
});
and you can see these posts for removing an item from ListView:
Remove ListView items in Android
Android: how to remove an item from a listView and arrayAdapter
Upvotes: 2