As a note to self, when you’re writing an Android application and you think you want to store some static text in an external file, a better approach can be to create a resource file under res/values.
For example, I’m currently adding some help text to an Android app, and to do that I created a file named strings_help.xml under the res/values directory. That file contains HTML wrapped in an XML CDATA tag, like this:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="help_string"> <![CDATA[ <!-- NOTE: i changed all single-percent symbols to double-percent symbols b/c they were causing problems --> <!-- SEE: http://developer.android.com/guide/topics/resources/string-resource.html --> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>your title</title> <style> <!-- style stuff in here ... --> </style> </head> <body> <p>Help text in here ... </body> </html> ]]> </string> </resources>
Once you’ve created that file, you can access it in your Android/Java code like this:
context.getString(R.string.help_string);
Note that the string R.string.help_string must match the name you gave the text in the XML file. (To be clear, this name does not match the XML filename.)
On a related note, here’s a link to another example of how to put plain static text in an Android strings/resources file.
Bonus: How to show static HTML in an Android WebView
As a bonus note, if you happen to want to display that static text in an Android WebView
, you can do that like this:
WebView webView = new WebView(context); String helpText = context.getString(R.string.help_string); webView.loadData(helpText, "text/html", "utf-8"); AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Help") .setView(webView) .setNeutralButton("OK", null) .show();
In summary, if you wanted to see how to store some static text somewhere (other than a file) in an Android application, I hope this example is helpful.