我沿着code here (weblink).阅读并且代码已被修改了一点,变成这样:
FileArrayAdapter.java
public class FileArrayAdapter extends ArrayAdapter- @H_301_10@
还有我到目前为止做的另一个目标:
Item.java
public class Item implements Comparable- @H_301_10@
列表布局有点定制如下:
listupload_row.xml
@H_301_10@
我的问题是:
我知道如果我想放置CheckBox,那么我应该把它放在XML(布局)下面.
但我的情况是,我想让longClick可用于显示CheckBoxes.
怎么做?
如果我只是在下面添加这个代码,当然它会将ListView设置为onLongClick事件….
dList.setLongClickable(true);
dList.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView> arg0,View arg1,int pos,long id) {
// show the checkBox of each lines
return true;
}
});
@H_301_10@
但是为了让它一旦亮起执行,我如何展示ComboBox?反之亦然….
最佳答案
一种可能的解决方案是隐藏/显示复选框,该复选框基于当项目收到长按时切换的标志.
在适配器的getView方法中执行以下操作:
在适配器的getView方法中执行以下操作:
@Override public View getView(int position,ViewGroup parent) { ... if(showCheckBoxes) { v.findViewById(R.id.checkBox).setVisible(View.VISIBLE); } else { v.findViewById(R.id.checkBox).setVisible(View.GONE); } ... }
@H_301_10@然后在你的长按监听器中:
dList.setOnItemLongClickListener(new OnItemLongClickListener() { public boolean onItemLongClick(AdapterView> arg0,long id) { showCheckBoxes = !showCheckBoxes; fileArrayAdapter.notifyDataSetChanged(); return true; } });
@H_301_10@