是否创建了空进度条?

时间:2012-04-28 23:10:58

标签: android xml progress-bar

当我运行下面的代码时,它会在日志文件中打印“null”...它有什么问题?

ProgressBar progressBar = (ProgressBar)findViewById(R.id.progressBar1);
if (progressBar == null) {
    Log.d("tag", "null");
}

并且xml调用是:

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="37dp"
    android:layout_y="343dp" />

2 个答案:

答案 0 :(得分:3)

layout中包含ProgressBar的{​​{1}}必须先被充气,您可能需要使用View.findViewById()代替Activity.findViewById()。我今天早上遇到了这个问题,我的修复就在这里:

    LayoutInflater infl = uI.getLayoutInflater();
    ViewGroup rootGroup = (ViewGroup) uI.findViewById(R.id.voltoast_root);
    View root = infl.inflate(R.layout.volumetoast, rootGroup);
    toast.setView(root);
    pB = (ProgressBar) root.findViewById(R.id.progress);

我在findViewById()而不是root上呼叫Activity,而root的视频已经膨胀,其中包含LinearLayout ProgressBar {{1}} 1}}是一个元素。

答案 1 :(得分:0)

将样式更改为:

style="@android:style/Widget.ProgressBar.Horizontal"