我必须在textview中显示一些语法突出显示的代码。所以我正在测试语法hhighligting是否有效
我在strings.xml中添加了一些测试代码,并尝试在textview中显示它
一切正常,但在运行应用程序时,代码显示在一行中
如下
我的代码
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<string name="app_name">syntaxtest</string>
<string name="javacode">
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.mainTextView);
}
}</string>
mainactivity.java
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String code = getResources().getString(R.string.javacode);
TextView tv = (TextView) findViewById(R.id.mainTextView);
// code is a String with source code to highlight
// myTextView is a TextView component
PrettifyHighlighter highlighter = new PrettifyHighlighter();
String highlighted = highlighter.highlight("java", code);
tv.setText(Html.fromHtml(highlighted));
}
}
答案 0 :(得分:2)
为标签尝试转义序列'\ t',为新行尝试'\ n'。
<url-pattern>/context/MyController/*</url-pattern>
有许多其他后遗症可能对您有用,请参阅here
答案 1 :(得分:2)
可以通过在每一行的末尾添加“\ n”来解决。
<string name="app_name">syntaxtest</string>
<string name="javacode">
public class MainActivity extends Activity\n
{\n
@Override\n
protected void onCreate(Bundle savedInstanceState)\n
{\n
super.onCreate(savedInstanceState);\n
setContentView(R.layout.main);\n
TextView tv = (TextView) findViewById(R.id.mainTextView);\n
}\n
}</string>
更新:
空格的<tab>
和新行使用<br>
您正在使用Html.fromHtml
,因此您需要添加以下代码,
<string name="javacode">
<![CDATA[public class MainActivity extends Activity {<br></br>
@Override<br></br>
protected void onCreate(Bundle savedInstanceState)<br></br>
{<br></br>
super.onCreate(savedInstanceState);<br></br>
setContentView(R.layout.main);<br></br>
TextView tv = (TextView)<br></br>
findViewById(R.id.mainTextView);<br></br>
}<br></br>
}]]></string>
答案 2 :(得分:1)
使用\n
,您需要转到字符串内容的下一行。
public class MainActivity extends Activity\n
{\n
@Override
像那样。
希望有所帮助
答案 3 :(得分:0)
你的字符串:
<string name="javacode">
public class MainActivity extends Activity \n
{\n
\t@Override\n
\tprotected void onCreate(Bundle savedInstanceState)
\t{\n
\t\tsuper.onCreate(savedInstanceState);\n
\t\tsetContentView(R.layout.main);\n
\t\tTextView tv = (TextView)\n
\t\tfindViewById(R.id.mainTextView);\n
\t}\n
}</string>
您的MainActivity.java
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String code = getResources().getString(R.string.javacode);
TextView tv = (TextView) findViewById(R.id.mainTextView);
tv.setText(code);
}
}