Android 正在尝试向我的对话框添加链接,但获取NullPointerException
我想在我的对话框中添加一些链接,我有标准文本,但我也希望有一些可点击的链接。但我得到了NPE错误。我尝试过许多解决方案,但最终总是出现nullpointerexception错误 这是我的密码:Android 正在尝试向我的对话框添加链接,但获取NullPointerException,android,hyperlink,dialog,Android,Hyperlink,Dialog,我想在我的对话框中添加一些链接,我有标准文本,但我也希望有一些可点击的链接。但我得到了NPE错误。我尝试过许多解决方案,但最终总是出现nullpointerexception错误 这是我的密码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { builder = new AlertDialog.Builder(new ContextThemeWrapper(this,
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());
这是我的日志:
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))
你的对话来自哪里
((TextView)dialog.findViewById(android.R.id.message))
可能dialog
为空
使用从show()
方法返回的Dialog
对象进行尝试:
dialog=builder.show();
TextView textView=(TextView)dialog.findViewById(android.R.id.message);
似乎,对话框为空。变量对话框的起始位置?添加更多代码。我忘了最重要的部分我一直在关注这个问题,但我没有看到整个情况。但是@ρаσρѕρєK answer修复了错误。这修复了NPE错误。我不敢相信我错过了最重要的部分,哈哈。但是,我还是不能点击链接。但这是不同的问题。现在我能够得到文本变量,应该很容易了。谢谢我将在3分钟内接受答案minutes@SlimC.:可能需要为TextViewWell设置android:linksClickable=“false”
属性。这不是一个自定义对话框,但我将查看相关文档。现在我有了textView,应该很容易了D可能是关于Foucs的事情是的,我忘记了最重要的部分lol。我从来没有想到对话框没有初始化。