我有一个应该很简单的问题,但我似乎无法解决它。
我正在使用DragSortListView。我想给每个 listview-item 一个带有原始位置的标签。当用户完成重新排序后,我想返回一个带有原始 id 的字符串(例如,如果用户将第一项移动到最后一个位置,则为 2、3、4、1)。如果一个项目被删除,我也想知道原始ID。
这是我的代码。
DragSortListView mainListView = (DragSortListView) findViewById( R.id.list_pages );
String[] names = settings.getString("pages", "Error,error").split(",");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(names));
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.row, list);
mainListView.setAdapter(adapter);
DragSortController controller = new DragSortController(mainListView);
...
现在我认为最好遍历所有项目并给它们带有原始ID的标签。我正在尝试使用类似这样的方式遍历项目
for (int i = 0; i < mainListView.getCount(); i++)
{
View v = mainListView.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.text);
tx.setTag(i);
}
但是,即使已设置适配器,此列表视图似乎也是空的。
我不能使用自定义的 ArrayAdapter,因为当项目被丢弃或滑开时应用程序会崩溃。
附加信息: 当服务使用广播接收器返回数据时,会填充列表视图。我不认为这会影响这一点,但你永远不会知道。
我的问题:
- 如何存储每个列表项的原始位置,以便以后可以访问它?
提前致谢!