0

我正在尝试使用此处提供的 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));

也不行。

在这两种情况下,列表都正确显示,但我无法移动项目。

任何的想法?

4

1 回答 1

1

问题可能是您没有设置任何属性,因为您传入null.

默认情况下,控制删除模式的变量设置为-1,这等于none根据声明属性的 xml 文件。

private int mRemoveMode = -1;

<attr name="remove_mode">
    <enum name="none" value="-1" />
    ...
</attr>

该文档指出,这remove_mode=none意味着用户无法删除任何列表条目。

现在,据我所知,您无法在AttributeSet不使用 xml 的情况下创建一个。如果您真的不想使用任何xml 文件,那么您可能应该调整TouchListView类并添加必要的 getter 和 setter。

于 2011-11-05T22:25:25.547 回答