我想在屏幕上显示整个c程序,这对用户应该是可见的。
我使用了textView,但由于代码中包含特殊符号,因此出现错误。
例如:
android:text=" #include <stdio.h>
int main()
{
int x, y, temp;
printf("Enter the value of x and y\n");
scanf("%d%d", &x, &y);
printf("Before Swapping\nx = %d\ny = %d\n",x,y);
temp = x;
x = y;
y = temp;
printf("After Swapping\nx = %d\ny = %d\n",x,y);
return 0;
}" />
我还希望用户能够滚动代码,因为代码可能比示例大。我是菜鸟,所以请建议我使用textView显示代码。
答案 0 :(得分:1)
将C代码保存在assets文件夹中的文件中,例如“res / assets / code.c”。
编写一个将文件内容读取为String的函数:
private String readFileInAssetsDir(String filename) {
BufferedReader br = null;
StringBuffer sb = new StringBuffer();
try {
br = new BufferedReader(new InputStreamReader(getAssets().open(filename)));
String line;
while((line = br.readLine()) != null)
sb.append(line + "\n");
} catch(Exception e) {
// TODO
}
return sb.toString();
}
现在在你的布局中定义一个WebView(不是TextView)(优点是你可以显示任何角色,而WebView直接提供缩放和滚动):
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
最后,我将所有C代码放在<pre></pre>
标记中,然后在WebView小部件中显示:
String plainCode = readFileInAssetsDir("code.c");
String htmlCode = "<pre>" + plainCode + "</pre>";
webView.loadDataWithBaseURL("", htmlCode, "text/html", "utf-8", "");
答案 1 :(得分:0)
编辑:这个工作但只读TXT文件中的一行文字
String line; TextView视图;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_addingprogrammultipletimes);
AssetManager am = getAssets();
try {
InputStream is = am.open("add.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
line = reader.readLine();
view = (TextView) findViewById(R.id.textView);
view.setText(line);
} catch (Exception e) {
e.printStackTrace();
}
}