避免多次点击

时间:2011-06-08 06:00:53

标签: android listview

我的应用程序包含多个列表视图。这意味着,一个listview会在点击第一个listiview项目时点击另一个listview。然后它打开第三个,点击第二个列表中的项目,依此类推。现在的问题是listview需要一些时间来填充数据,让用户感觉点击不被确认,用户再次按下它。因此,第一次单击打开第二个列表,第二次单击打开第三个列表,这是不希望的。我该怎么处理这件事。我尝试使用listview.setEnabled(false),但这没有帮助。我不想显示进度条。我可以禁用第二次点击或任何其他方式来处理此问题吗?

4 个答案:

答案 0 :(得分:2)

设置一个全局布尔值$ bBeenClicked,在第一次点击时将其设为true并在第二次点击时检查它;列表加载完成后将其设置为false。

答案 1 :(得分:1)

您应该考虑提高ListView的效果。除非他们需要通过互联网访问某些内容或者有其他类似的约束,否则他们不应该花这么长时间来加载。一个好的ListView应该只加载可以在屏幕上显示的内容,然后在用户向下滚动时根据需要加载更多内容。您可以使用一些技巧,例如确保重复使用convertView。我建议您观看this video。它采用了实现ListView的最佳方式,以使其表现良好。

答案 2 :(得分:0)

您需要在ProgressDialog中加载新列表:

public static void open_new_list(int level)
    {

        verlauf = ProgressDialog.show(ctx, "Wait...", "...load new List",true,false);
        new Thread(){
             @Override
            public void run(){
                Looper.prepare();
                  //load the new Listview
                  //display via runnable
                 }
                verlauf.dismiss();  
             }
        }.start();
    }

编辑: 如果没有进度条,您可以在单击后删除适配器,然后用户无法点击两次

答案 3 :(得分:0)

您可以添加触觉反馈,以便用户点击listview项目以告知用户点击了该项目。

How to enable haptic feedback on button view