我有一个自定义 DialogPreference:
<com.myapp.MyPreferenceDialog
android:key="dialog_key"
android:title="Test MyDialogPreference"
android:positiveButtonText="ok"
android:negativeButtonText="cancel"
/>
对话框代码如下:
class MyDialogPreference extends DialogPreference
{
public MyDialogPreference( Context context, AttributeSet attrs )
{
super(context, attrs);
setDialogLayoutResource( R.layout.test );
}
}
布局xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/image" />
</LinearLayout>
当我启动应用程序设置并触摸“Test MyDialogPreference”时,会显示一个对话框,但 imageview 不显示任何图像。我知道如何以编程方式解决此问题(只需覆盖onBindDialogView()
ImageView 图像资源并将其设置为其可绘制对象),但我想了解为什么我必须以编程方式进行。