我想在我的對話框中添加一些鏈接,我有標準文本,但我也想有一些可點擊的鏈接。但我得到NPE錯誤。我嘗試了很多解決方案,但我總是以nullpointerexception錯誤結束;嘗試添加鏈接到我的對話框,但得到NullPointerException
這裏是我的代碼:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
builder = new AlertDialog.Builder(new ContextThemeWrapper(this,
android.R.style.Theme_Holo_Light_Dialog));
} else {
builder = new AlertDialog.Builder(this);
}
builder.setTitle(getString(R.string.dialogTitle) + " " + getResources().getString(R.string.app_name));
String msg = getResources().getString(R.string.dialogMessage);
final SpannableString DialogMessage = new SpannableString(msg);
Linkify.addLinks(DialogMessage, Linkify.ALL);
builder.setMessage("Version " + AppVersion + "\n" + DialogMessage);
builder.setNeutralButton(getString(R.string.neutralText),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.show();
((TextView) dialog.findViewById(android.R.id.message))
.setMovementMethod(LinkMovementMethod.getInstance());
這裏是我的logcat:
11-06 16:36:36.774: E/AndroidRuntime(8521): FATAL EXCEPTION: main
11-06 16:36:36.774: E/AndroidRuntime(8521): java.lang.NullPointerException
11-06 16:36:36.774: E/AndroidRuntime(8521): at com.sm.flashlightpro.MainFlashlightActivity.showInfoDialog(MainFlashlightActivity.java:213)
11-06 16:36:36.774: E/AndroidRuntime(8521): at com.sm.flashlightpro.MainFlashlightActivity$3.onClick(MainFlashlightActivity.java:124)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.view.View.performClick(View.java:4421)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.view.View$PerformClick.run(View.java:17903)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.os.Handler.handleCallback(Handler.java:730)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.os.Handler.dispatchMessage(Handler.java:92)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.os.Looper.loop(Looper.java:213)
11-06 16:36:36.774: E/AndroidRuntime(8521): at android.app.ActivityThread.main(ActivityThread.java:5225)
11-06 16:36:36.774: E/AndroidRuntime(8521): at java.lang.reflect.Method.invokeNative(Native Method)
11-06 16:36:36.774: E/AndroidRuntime(8521): at java.lang.reflect.Method.invoke(Method.java:525)
11-06 16:36:36.774: E/AndroidRuntime(8521): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
11-06 16:36:36.774: E/AndroidRuntime(8521): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
11-06 16:36:36.774: E/AndroidRuntime(8521): at dalvik.system.NativeStart.main(Native Method)
線213是:
((TextView) dialog.findViewById(android.R.id.message))
看來,對話框爲空。你的變量對話框在哪裏?添加更多代碼。 – lewkka
是的。我忘了最重要的部分。 - 一直在尋找接近這個問題,我沒有看到整個圖片。但@ρяσѕρєяK答案解決了這個錯誤。 –