我有一个显示启动画面的自定义对话框;
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不是一个选项,因为你无法自定义它......
谢谢你们!
答案 0 :(得分:1)
检查您是否在正确的上下文中调用findViewById()。例如,您目前拥有的内容相当于:
progress = (ProgressBar)this.findViewById(R.id.progressbar_Horizontal);
如果mSplashDialog不是“this”的视图层次结构的一部分,则findViewById将永远不会找到您的progressBar。也许你想要这样的东西:
progress = (ProgressBar)mSplashDialog.findViewById(R.id.progressbar_Horizontal);