2013-03-13 63 views
0

我将有大量的文本文件(隐私声明等,可能不超过100k),我希望他们在/ assets或/ raw文件夹中,而不是在我的@strings文件中。Android:TextView可以仅使用XML来显示文本文件(资源或原始资料)的内容吗?

此外,我想加载它们在XML文本视图中,我知道我可以通过编程方式。

我知道的一种方法是扩展文本视图并声明一个stylable属性,解析它并从后面的代码中执行我需要的东西。

但是在android中有一个本地的方式来做到这一点?没有我必须为它写逻辑?这看起来并不罕见。

+3

据我所知这是不可能的,但你可以把在strings.xml中的文本,不管是大是你的文字大小 – Pragnani 2013-03-13 10:13:58

+0

好,考虑到所有的事情,我总结了各大文本文件中的特殊资源的XML文件(条款,隐私)将是一个很好的方法 - 易于国际化,不会阻碍或淹没主strings.xml文件。 – George 2013-03-13 13:19:05

回答

0

要显示文件内容,您可以这样做:“Codes”是目录的名称,FILE_RECEIVE是要打开的文件的名称。

InputStream ss; 
    String code; 
    String content = ""; 
    try{ 
     files = assetManager.list("Codes"); 
     ss=getAssets().open("Codes/"+FILE_RECEIVE); 
     content= convert_to_String(ss); 
    } 
    catch (FileNotFoundException e) 
    { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 



public String convert_to_String(InputStream ss) 
{ 

    BufferedReader bufferedReader=null; 
    StringBuilder stringBuilder=new StringBuilder(); 
    String line; 
    try{ 
     bufferedReader= new BufferedReader(new InputStreamReader(ss)); 
     while ((line=bufferedReader.readLine())!=null) 
     { stringBuilder.append("\n"); 
      stringBuilder.append(line); 
     } 
    }catch (IOException e){ 
     e.printStackTrace(); 
    } finally { 
     if (bufferedReader != null) { 
      try { 
       bufferedReader.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    return stringBuilder.toString(); 

}