我想在android屏幕上显示整个c程序

时间:2013-01-15 14:41:14

标签: android

我想在屏幕上显示整个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显示代码。

2 个答案:

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


}