android中的自定义对话框无效

时间:2012-03-16 04:49:43

标签: android

我必须在我的应用程序中实现自定义对话框,但我的代码似乎无效。 请帮帮我。

提前致谢。

这是我的代码:

Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);

dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");

TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.android);

这是我的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_root"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="10dp"
              >
    <ImageView android:id="@+id/image"
               android:layout_width="wrap_content"
               android:layout_height="fill_parent"
               android:layout_marginRight="10dp"
               />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF"
              />
</LinearLayout>

4 个答案:

答案 0 :(得分:5)

您可以尝试使用dialog.Show()

答案 1 :(得分:4)

取代使用 setContentView(),获取LayoutInflater,= n执行您想要对布局执行的操作,然后使用 setView()方法。

因为在AlertDialog的情况下,setContentView将无效。

有关详细信息,请参阅此link

答案 2 :(得分:2)

我坚持不使用getApplicationContext()创建Dialog实例,而是使用Activitys实例创建它。

Dialog dialog = new Dialog(Activity_Name.this);

还要确保在创建对话框后调用dialog.show();

答案 3 :(得分:2)

        Dialog listDialog = new Dialog(this);
        listDialog.setTitle(getString(R.string.picktemplate));
        LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = li.inflate(R.layout.custom_dialog, null, false);
        listDialog.setContentView(view);
        listDialog.setCancelable(true);

        Button list1 = (Button) listDialog.findViewById(R.id.btnList);
        listDialog.show();