我正在尝试使用此处提供的TouchListView:https://github.com/commonsguy/cwac-touchlist。这是一个用于创建可重新排序列表的Android库。
我可以正常运行演示,但我找不到用Java创建TouchList的方法,即没有在XLM布局中定义它。
以下是演示中的代码:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TouchListView tlv=(TouchListView)getListView();
adapter=new IconicAdapter();
setListAdapter(adapter);
tlv.setDropListener(onDrop);
tlv.setRemoveListener(onRemove);
}
它在ListActivity中。这很好。现在,我试图避免使用ListActivity:
...
TouchListView tlv = new TouchListView(this, null);
adapter=new IconicAdapter();
setListAdapter(adapter);
...
没有运气。
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
TouchListView tlv = (TouchListView) (inflater.inflate(R.layout.touchlistview, null));
也不起作用。
在这两种情况下,列表都会正确显示,但我无法移动项目。
有什么想法吗?
答案 0 :(得分:1)
问题可能是您在传递null
时没有设置任何属性。
默认情况下,控制删除模式的变量设置为-1
,根据声明属性的xml文件等于none
。
private int mRemoveMode = -1;
和
<attr name="remove_mode">
<enum name="none" value="-1" />
...
</attr>
文档指出remove_mode=none
表示用户无法删除任何列表条目。
现在,据我所知,如果不使用xml,则无法创建AttributeSet
。如果您真的不想使用任何 xml文件,那么您应该调整TouchListView
类并添加必要的getter和setter。