进度条始终返回null
public void calcola(View view) {
final Dialog myDialog = new Dialog(this);
myDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
myDialog.setContentView(R.layout.calcdialog);
myDialog.setCancelable(false);
Typeface typeFace = Typeface.createFromAsset(getAssets(),"font/Flower.ttf");
mProgress = (ProgressBar) findViewById(R.id.ProgressBar);
TextView calc = (TextView) myDialog.findViewById(R.id.textView1);
calc.setTypeface(typeFace);
myDialog.show(); }
这是我的xml
<ProgressBar
android:id="@+id/ProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:maxHeight="30dp"
android:minHeight="30dp" />
同一版面的textview完美无缺,有什么想法吗?
感谢
答案 0 :(得分:5)
(ProgressBar) findViewById(R.id.ProgressBar) returns null
因为您使用的是findViewById(R.id.ProgressBar);
而不是 myDialog.findViewById(R.id.ProgressBar);
所以你的代码应该
mProgress = (ProgressBar) myDialog.findViewById(R.id.ProgressBar);
答案 1 :(得分:3)
您需要更改
mProgress = (ProgressBar) findViewById(R.id.ProgressBar);
到
mProgress = (ProgressBar) myDialog.findViewById(R.id.ProgressBar);
正如您为TextView
做的那样。由于您inflate
Dialog
layout
需要通过添加myDialog.
答案 2 :(得分:3)
如果calcdialog.xml
中有进度条,请使用对话框对象初始化进度条,如下所示
mProgress = (ProgressBar) myDialog.findViewById(R.id.ProgressBar);
findViewById()
在当前夸大的布局中查找包含所提供ID的View
。因此,您将caldialog的内容设置为对话框。因此,使用对话框对象初始化视图。
答案 3 :(得分:0)
您必须检查布局信息,添加progressBar的布局以及撤消ID的位置。 试试这个:
mProgress = (ProgressBar) myDialog.findViewById(R.id.ProgressBar);