Android:Checked Listview项目最后

时间:2013-09-11 12:16:57

标签: android listview

我的ListView看起来像这样:

[CheckBox] [TextView]

我的问题是,如何在选中CheckBox时更改项目位置?我的意思是说,如果用户从ListView中检查了任何项目,那么检查的项目就会结束,所以它的位置从当前变为最后。

先谢谢。

3 个答案:

答案 0 :(得分:0)

对listView使用自定义适配器。这是一个example。现在来自ListActivity类

final ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) {

    HashMap<String, Object> map = (HashMap<String, Object>)
    lv.getItemAtPosition(position);
   // get the item Position from here and make the nacessary changes
  // and update the listview again.

    }

答案 1 :(得分:0)

如果不发布任何代码,则必须简要概述您需要采取的伪步骤

您只需要更新适配器使用的数据集的顺序(通常是一个arraylist或对象数组),然后调用

notifyDataSetChanged()
适配器上的

因此,在您的情况下,您希望将元素放在被单击的位置,并将其放在对象的arrayList的末尾。

如果你发布一些代码,你可能会得到更详细的答案

答案 2 :(得分:0)

以下是您可以遵循的步骤。我没有测试过,但你可以尝试一下。

// your value array you are binding with listview
private final String[] values;

// put default value to "n". size will be the same as for values array.
private final String[] valuesChecked; 


   onClick of Checkbox Listview



@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        //get checkbox is checked or not
        if it is checked then{
            valuesChecked[position]="y";
        }else{
            valuesChecked[position]="n";
        }

        // short your values array by first "n" and after "y".
        // call your adapter.notifyDataSetChanged();

    }

祝你好运:)