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