Android: Remove item (ListView)

随声附和 提交于 2019-12-02 06:37:40

问题


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.


回答1:


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();
        }
    });
}



回答2:


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



来源:https://stackoverflow.com/questions/11112953/android-remove-item-listview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!