我必须在我的应用程序中实现自定义对话框,但我的代码似乎无效。 请帮帮我。
提前致谢。
这是我的代码:
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>
答案 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();