2011-10-12 49 views
3

我有以下代碼,我嘗試在文本視圖中顯示西班牙文中的文本。當我運行應用程序,然後顯示?在某些地方。誰能告訴我顯示西班牙語的詳細程序。如何在TextView中顯示西班牙文字?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.information); 
    textview=(TextView) findViewById(R.id.information); 
     textview.setText(readTxt()); 
} 

private String readTxt(){ 
    InputStream inputStream = getResources().openRawResource(R.raw.info); 
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
    int i; 
    try { 
    i = inputStream.read(); 
     while (i != -1) 
     { 
      byteArrayOutputStream.write(i); 
      i = inputStream.read(); 
     } 
     inputStream.close(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
     return byteArrayOutputStream.toString(); 
} 

回答

1

您的readTxt方法有誤。 您正在返回ByteArrayOutputStream的字符串表示形式,而不是實際的字符串。

嘗試將輸入流讀入ByteArrayInputStream,然後從中獲取字節數組,然後返回新的String(byteArray);

private String readTxt(){    
InputStream inputStream = getResources().openRawResource(R.raw.info); 
     InputStreamReader isReader = new InputStreamReader(inputStream); 

     BufferedReader reader = new BufferedReader(isReader); 

     StringBuffer buffer = new StringBuffer(); 
     String line = null; 
     while ((line = reader.readLine()) != null) 
     { 
      buffer.append(line); 
      buffer.append("\n"); 
     } 
     buffer.deleteCharAt(buffer.length() - 1); // Delete the last new line char 
     // TODO: Don't forget to close all streams and readers 
     return buffer.toString(); 
    } 
+0

我不能讓它properly.Can你能給我一些例子或鏈接,這樣我會把那個... –

+0

我已經編輯我的答案。請注意,我沒有測試代碼,只是寫在這裏,但它應該作爲我的答案的解釋。 – IncrediApp

+0

感謝您的回覆,我嘗試了您的邏輯,但仍然沒有顯示正確的文本。請讓我知道或給我一些鏈接或告訴其他方法。 –

相關問題