我的应用程序顶部有四个Tab
第四个选项卡的内容是它将从sql server获取数据,然后在listview中显示
由于检索的数据量很大,需要2-3秒
问题是:
单击第四个选项卡后,它没有响应,然后在2-3秒后显示内容
据我所知,它是从数据库加载数据,我不会继续点击
但是,当用户点击它并且没有响应时,他可以单击并单击并单击
如何向用户显示内容以便他们知道它正在加载数据?
答案 0 :(得分:2)
您应该使用CrusorLoader。这将显示加载圈,同时仍然使UI处于活动状态。请注意,即使您使用的是较低版本的android API,您仍然可以通过Android Support Package访问CursorLoader类。有关loaders的详细信息,请结帐
答案 1 :(得分:2)
new SomeTask(0).execute(); //在第4个选项卡onCreate()
中写下这一行/** Inner class for implementing progress bar before fetching data **/
private class SomeTask extends AsyncTask<Void, Void, Integer>
{
private ProgressDialog Dialog = new ProgressDialog(yourActivityClass.this);
@Override
protected void onPreExecute()
{
Dialog.setMessage("loading...");
Dialog.show();
}
@Override
protected Integer doInBackground(Void... params)
{
//Task for doing something
// get data from sql server and then display in listview
return 0;
}
@Override
protected void onPostExecute(Integer result)
{
if(result==0)
{
//do some thing if your list completed
}
// after completed finished the progressbar
Dialog.dismiss();
}
}
答案 2 :(得分:0)
当一个长时间运行的进程启动时,你需要指出发生的事情,以便用户知道等待。你想要一个进度对话框。
这是一个例子: http://www.androidpeople.com/android-progress-dialog-example