在对话框中绘图

时间:2010-12-05 22:41:02

标签: android dialog

我想显示一个自定义对话框,然后为用户显示一些结果 - 这不是问题。但我也想在文本上绘制数据的直观表示。

    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的新手)谢谢

1 个答案:

答案 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);