1

当我运行下面的代码时,它会在日志文件中打印“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" />
4

2 回答 2

4

必须先充气,然后layoutProgressBar可能需要使用 in 来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()theroot而不是我的Activity, 并且root具有包含 aLinearLayout其中ProgressBar一个元素的膨胀视图。

于 2012-04-29T18:59:40.907 回答
0

将样式更改为:

style="@android:style/Widget.ProgressBar.Horizontal"
于 2012-04-28T23:19:27.330 回答