我的ListView看起来像这样:
[CheckBox] [TextView]
我的问题是,如何在选中CheckBox时更改项目位置?我的意思是说,如果用户从ListView中检查了任何项目,那么检查的项目就会结束,所以它的位置从当前变为最后。
先谢谢。
答案 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();
}
祝你好运:)