我试图在对话框中显示HTML代码,但HTML需要存储在首先放入textview的字符串中。
我发现了很多关于类似内容的其他问题,但大多数是在代码而不是strings.xml中设置文本。没有我发现似乎使用'对话框textview to string with html'处理。 到目前为止,我已经完成了我认为应该有效但我现在收到错误(下图)。我尝试了其他方法,但无法显示HTML效果。
我还是Android的新手,所以任何帮助我看看我做错了什么都会很棒。感谢。
preferencesActivity.java - OnCreate
Preference myPref = (Preference) findPreference("pref_showHelp");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
Dialog dialog = new dialog(preferencesActivity.this);
helpFile_textView = (TextView) findViewById(R.id.helpFile_textView);
helpFile_textView.setText(Html.fromHtml(getString(R.string.helpFile_text))); // Line 44
dialog.setContentView(R.layout.helpfile);
dialog.setTitle("Help");
dialog.show();
return false;
}
});
}
helpfile .xml
<TextView
android:id="@+id/helpFile_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="@string/helpFile_text" />
</LinearLayout>
字符串.xml
<string name="helpFile_text">Test of <b>bold and <u>underline</u> and bullet •</string>
logcat的
E/AndroidRuntime(1516): java.lang.NullPointerException
E/AndroidRuntime(1516): at com.example.newcalc.preferencesActivity$1.onPreferenceClick(preferencesActivity.java:44)
答案 0 :(得分:2)
更改
helpFile_textView = (TextView) findViewById(R.id.helpFile_textView);
helpFile_textView.setText(Html.fromHtml(getString(R.string.helpFile_text)));
dialog.setContentView(R.layout.helpfile);
到
dialog.setContentView(R.layout.helpfile);
helpFile_textView = (TextView) dialog.findViewById(R.id.helpFile_textView);
helpFile_textView.setText(Html.fromHtml(getString(R.string.helpFile_text)));
您必须使用Dialog
对findViewById
中要使用的布局进行充气,然后才能使用id
此外,由于您要查找的helpFile_textView
(例如dialog
)位于您在dialog.findViewById
中夸大的布局中,因此您必须使用findViewById
而不是{{1}得到TextView
另外
Dialog dialog = new dialog(preferencesActivity.this);
应该是
Dialog dialog = new Dialog(preferencesActivity.this);
但我认为这是一个错字。
答案 1 :(得分:1)
试试这个
dialog.setContentView(R.layout.helpfile);
helpFile_textView = (TextView) dialog.findViewById(R.id.helpFile_textView);
helpFile_textView.setText(Html.fromHtml(preferencesActivity.this.getResources().getString(R.string.helpFile_text)));
更多更正请参考@ Aproov的答案。