【问题标题】:Drag and Drop with cwac-touchlist使用 cwac-touchlist 拖放
【发布时间】:2012-02-09 02:07:47
【问题描述】:

我有两个问题。

1. 如何让应用记住我通过拖放创建的 ListView 中的新顺序。就像现在我可以重新订购商品,但每次打开应用程序时,我都必须重新订购商品。

2. 我的应用应该从每个项目打开不同的网页。但是当我重新排序项目时,网络链接不会重新排序。他们坚持相同。

例如:我有 Google 和 Yahoo! 项目所以链接是“http://google.com”和“http://yahoo.com”。然后我重新排序项目:谷歌是顶部,但我将雅虎拖到顶部。之后,当我按下“Yahoo!”时项目它打开谷歌的网站,当我按“谷歌”它打开雅虎的网站。

这是我制作 OnItemClickListener 的方法:

getListView().setOnItemClickListener(new OnItemClickListener() {


    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        String content = links[position];
        Intent showContent = new Intent(getApplicationContext(),
                Web.class);
        showContent.setData(Uri.parse(content));
        startActivity(showContent);
    }

});

【问题讨论】:

    标签: android android-listview drag-and-drop commonsware-cwac


    【解决方案1】:

    如何让应用程序记住我通过拖放创建的 ListView 中的新顺序。就像现在我可以重新订购商品,但每次打开应用程序时,我都必须重新订购商品。

    将顺序存储在某处(例如,数据库表中的序列列)并在将数据加载回您的 Adapter 时重新排序。

    我的应用应该从每个项目打开不同的网页。但是当我重新排序项目时,网络链接不会重新排序。他们坚持相同。

    引用the documentation:

    在代码中,您可以像普通的ListView 一样设置TouchListView,只是需要通过setDropListener() 注册TouchListView.DropListener。在您的侦听器中,您需要做一些事情来影响通过拖放操作请求的重新排序。在演示项目中,这是将条目从旧位置移除并放入新位置的问题。

    【讨论】:

    • 因此,如果我想从正确的项目打开链接,我可以同时拖放链接而不是拖放项目。就像我必须让它们进行相同的拖放,并且每当我将项目向下移动两行时,它也会将链接向下移动两行?如果你明白我想说的话。 :)
    • @Eljas:恐怕我不明白你想说什么。
    • 现在我有我的物品和这样的链接:private static String[] items={"Google", "Yahoo"}; private static String[] links={"http://google.com", "http://yahoo.com"}; 那么当您更改物品顺序时,这种方式是否不可能从正确的物品打开链接? ——
    • @Eljas:您不能更改String[] 的顺序。创建一个保留名称和 URL 的 ArrayList,并在用户更改 TouchListView 中项目的顺序时更改 ArrayList 中的项目顺序。这是演示应用程序显示的内容。
    • 感谢您抽出宝贵时间为我提供帮助! :)
    猜你喜欢
    • 2011-08-26
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2012-01-30
    • 2011-08-05
    • 2011-01-05
    相关资源
    最近更新 更多