我正在创建一个自定义AlertDialog
,但我遇到了一个错误。
在strings.xml
我定义了一个字符串,如:
<string name="infoDetail">Test: <a href="http://www.google.com">Google</a></string>
我创建了一个这样的自定义布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/infoVersionTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:gravity="right|center"
android:text="@string/infoVersion"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/infoVersionTitleValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/infoVersionTitle"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/infoDetailText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/infoVersionTitle"
android:autoLink="web"
android:linksClickable="true"
android:padding="4dp"
android:text="@string/infoDetail" />
</RelativeLayout>
AlertDialog
这是使用我的自定义布局创建的代码:
case R.id.info:
AlertDialog.Builder about = new AlertDialog.Builder(this);
about.setTitle(getString(R.string.app_name));
about.setIcon(R.drawable.info);
about.setView(getLayoutInflater().inflate(R.layout.info, null));
TextView infoDetail = (TextView) findViewById(R.id.infoDetailText);
infoDetail.setMovementMethod(LinkMovementMethod.getInstance());
about.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
about.show();
break;
Whit this I'm getting a java.lang.NullPointerException
on infoDetail.setMovementMethod(LinkMovementMethod.getInstance());
。
如果我删除此行,我的自定义布局将按预期显示,但 url 不可点击。
我究竟做错了什么?