#android
#Android
Вопрос:
У меня есть следующий код, и я пытаюсь отобразить текст в текстовом представлении на испанском языке. Когда я запускаю приложение, оно отображается? в некоторых местах. Кто-нибудь может рассказать мне подробную процедуру отображения испанского языка.
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
, а не фактической строки.
Попробуйте прочитать входной поток в a 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();
}
Комментарии:
1. Я не могу получить его правильно. Можете ли вы привести мне какой-нибудь пример или ссылку, чтобы я ссылался на это…
2. Я отредактировал свой ответ. Обратите внимание, что я НЕ ТЕСТИРОВАЛ код и просто написал его здесь, но это должно послужить объяснением моего ответа.
3. Спасибо за ваш ответ, я пробую вашу логику, но все равно он не отображает правильный текст. Пожалуйста, дайте мне знать или дайте мне какую-нибудь ссылку или сообщите другой метод.