简体   繁体   English

Android:删除项目(ListView)

[英]Android: Remove item (ListView)

I want to remove an item from ListView , but I don't know how can I do it. 我想从ListView删除一个项目,但我不知道我该怎么做。

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. 我想删除一个0 id的项目,指导我这样做。

You can delete an item from ListView as: 您可以从ListView中删除项目:

 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: 并且您可以看到这些帖子从ListView中删除项目:

Remove ListView items in Android 在Android中删除ListView项目

Android: how to remove an item from a listView and arrayAdapter Android:如何从listView和arrayAdapter中删除项目

If you do not want to display item 0, simply adjust the size of lv_arr and change your for-loop: 如果您不想显示项目0,只需调整lv_arr的大小并更改您的for循环:

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[] : 如果你想在应用程序运行时删除项目,我建议使用List<String>而不是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();
        }
    });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM