Android的;带有自定义对话框的进度条

时间:2011-08-10 23:03:27

标签: android layout dialog progress-bar splash-screen

我有一个显示启动画面的自定义对话框;

mSplashDialog = new Dialog(MyActivity.this,R.layout.splash);
mSplashDialog.setContentView(R.layout.splash);
mSplashDialog.setCancelable(true);
mSplashDialog.show();

初始布局上有一个ProgressBar;

LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/picture_splash"
ProgressBar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
android:id="@+id/progressbar_Horizontal"
android:max="100"
LinearLayout

但是当我尝试引用进度条时;

        progress = (ProgressBar) findViewById(R.id.progressbar_Horizontal);
        progress.setMax(100);

我在调试器中发现应用程序在第二行崩溃,因为对象progress = null,空zipp,nuttin :(

似乎进度条一旦停靠在对话框中就无法访问...... :(

有人知道解决这个问题吗?

ProgresDialog不是一个选项,因为你无法自定义它......

谢谢你们!

1 个答案:

答案 0 :(得分:1)

检查您是否在正确的上下文中调用findViewById()。例如,您目前拥有的内容相当于:

progress = (ProgressBar)this.findViewById(R.id.progressbar_Horizontal);

如果mSplashDialog不是“this”的视图层次结构的一部分,则findViewById将永远不会找到您的progressBar。也许你想要这样的东西:

progress = (ProgressBar)mSplashDialog.findViewById(R.id.progressbar_Horizontal);