我想显示一个自定义对话框,然后为用户显示一些结果 - 这不是问题。但我也想在文本上绘制数据的直观表示。
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.progress_overview);
dialog.setTitle(getString(R.string.progress_overview));
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("results...");
progress_overview.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<com.name1.name2.ProgressDrawableView android:id="@+id/progress_image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
问题是,如果我这样做,我无法访问显示的ProgressDrawableView视图的方法(使用findViewById返回空指针)。
如果我的方法完全错误,请你提出解决方案或不同的方法吗? (我是android dev的新手)谢谢
答案 0 :(得分:1)
您需要使用LayoutInflater来扩展附加到布局的视图。然后它很容易。它会是这样的:
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.progress_overview, null);
myProgressImage = (ProgressDrawableView) layout.findViewById(R.id.progress_image);
mProgressText = (TextView) layout.findViewById(R.id.text);
dialog.setContentView(layout);