0

你好!我正在尝试在 listview 中添加一些值,并尝试使用 (inc) 和 (dec) 按钮增加/减少项目的数量。

要增加或减少列表视图项目数量,我必须选择列表行,如果我在其中添加任何项目。

如何在 notifydatachanged 上增加/减少列表视图的选定位置?
现在我正在这样做:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    index = position;

}

在此处获取所选索引并使用此索引值来增加或减少项目数量

4

2 回答 2

0
Your List is filled up with some data like this,

     ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
                for(int i = 1; i <= list.size(); i++){
                    HashMap<String, String> map = new HashMap<String, String>();
                    map.put("rowid", "" + i);
                    map.put("col_1",list.get());
                    map.put("col_2", map.get(list.get(i-1)));
                    map.put("col_3", "X");
                    arrayList.add(map);
                }

                // fill in the list item layout
                 adapter = new SimpleAdapter(this, fillMaps, android.R.layout.simple_list_item_1, from, to);
                 lv.setAdapter(adapter);

}

            buttonAdd.setOnClickListener(new OnClickListener()
          {
             public void onClick(View v)
                {

               //Here we are adding data to list
                int size=list.size();
                HashMap<String, String> map = new HashMap<String, String>();
                                  map.put("rowid", "" + size);
                                  map.put("col_1",list.get(size-1));
                                  map.put("col_2", map.get(list.get(size-1)));
                                  map.put("col_3", "X");
                                  arraylist.add(map);
                                  adapter.notifyDataSetChanged();//refreshing adapter
});

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

            public boolean onItemLongClick(AdapterView<?> arg0, View v,
                    int index, long arg3) {

 //Here we are removing data from list
    listview.remove(index);
                arrayList.remove(index);
                adapter.notifyDataSetChanged();

}
于 2013-05-29T08:13:19.550 回答
0

ListView填满了您提供给适配器的数据集。如果要增加/减少 ListView 显示的项目,则必须从此数据集中添加/删除项目并调用notifyDatasetChanged()

于 2013-05-29T07:20:37.613 回答