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