Android Dialog在String中的TextView中显示HTML

时间:2014-06-04 10:34:55

标签: android html dialog textview

我试图在对话框中显示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 &#8226;</string>

logcat的

E/AndroidRuntime(1516): java.lang.NullPointerException
E/AndroidRuntime(1516):     at com.example.newcalc.preferencesActivity$1.onPreferenceClick(preferencesActivity.java:44)

2 个答案:

答案 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)));

您必须使用DialogfindViewById中要使用的布局进行充气,然后才能使用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的答案。