【发布时间】:2012-07-16 08:38:18
【问题描述】:
我在Activity1 中有一个ListView。 OnItemClick,我正在导航到另一个活动 Activity2,我有一些数据库代码。
现在的问题是从 DB 获取数据需要一些时间,所以在从 Activity1 导航到 Activity2 时,会出现几秒钟的空白屏幕。
为了克服这个问题,我尝试了ProgressDialog,但ProgressDialog 根本没有出现。
活动 2 中的代码 sn-p:
public class Activity2 extends Activity implements Runnable {
@Override
public void onCreate(Bundle savedInstanceState) {
Thread thread = new Thread();
thread.start();
run();
}
@Override
public void run() {
plansDesc = dbMgr.chkRecord(
"SELECT Description FROM SubPlan where Title='" + subTitle
+ "'", "Description");
ProgressDialog progDailog = ProgressDialog.show(
SubPlanDescActivity.this, "Plan Information", "Loading...",
true);
try {
if (plansDesc != "") {
tvDesc.setText(Html.fromHtml(plansDesc));
} else {
tvDesc.setText(Html
.fromHtml("<b>No Information Available...</b>"));
}
} catch (Exception e) {
}
handler.sendEmptyMessage(0);
progDailog.dismiss();
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
}
};
感谢任何帮助。
【问题讨论】:
-
因为你正在实现runnable,所以删除run();在thread.start()下;
-
你是对的。但是我没有手动调用运行,它没有被执行......
-
检查我的答案,要使用你的 run 方法,你必须将你的可运行对象作为 Thread 对象的参数传递。
-
使用Asynctask.. 解决你的问题..
-
我已经对代码进行了更改。请尝试一下
标签: android android-layout android-activity progressdialog