У меня работает мой маленький html-фишер, и он берет текстовый файл в виде строки URL. Я могу вызвать setText для моего представления EditText, и он действительно отобразит текст в текстовом файле, но форматирование вообще не похоже (я говорю о простых вещах, таких как возврат каретки и перевод строки). Как я могу заставить это визуализироваться немного лучше в EditText? Исходный текстовый файл выглядит так:
Представьте себе следующее из ресурса:
http://www.someaddress.com/thetextfile.txt
Original Text File here.
1. First thing on the text file.
2. Second thing on the text file...
Finally the end of the text file. This is a long string blah blah
that I like to use here. Notice the carriage return line breaks and indentation
on the paragraph.
Я могу получить приведенное выше в виде строки, но при отсутствии возврата каретки, когда он отображается в EditView. Могу ли я в любом случае добавить это? Это не вопрос добавления \ n или \ r, потому что они уже будут в текстовом файле, который я подозреваю (был написан в Notepad ++). Так есть ли способ сделать это немного более отформатированным? (и сохранить форматирование при сохранении строки обратно на диск или в базу данных?
EDIT:
<EditText android:id="@+id/contract_text_input"
android:layout_width="650sp" android:layout_height="wrap_content"
android:lines="25"
android:scrollbars = "vertical"
android:gravity="top|left" android:inputType="textMultiLine"
android:scrollHorizontally="false"
android:minWidth="10.0dip"
android:maxWidth="5.0dip"/>
EDIT:
Это методы, которые извлекают этот текстовый файл из Интернета. Кажется, они вырывают все \ n и \ r. Но если я проверю тот файл, который находится в сети, в нем есть только \ t. Так, может быть, его filezilla загружает на мой веб-сервер файл?
public static InputStream getInputStreamFromUrl(String url){
InputStream contentStream = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
contentStream = response.getEntity().getContent();
} catch(Exception e){
e.printStackTrace();
}
return contentStream;
}
public static String getStringFromUrl(String url) {
BufferedReader br = new BufferedReader(new InputStreamReader(getInputStreamFromUrl(url)));
StringBuffer sb = new StringBuffer();
try{
String line = null;
while ((line = br.readLine())!=null){
sb.append(line);
}
}catch (IOException e){
e.printStackTrace();
}
return sb.toString();
}
Вот как я в конечном итоге обновляю EditText:
private class FragmentHttpHelper extends AsyncTask<Void, Void, String>{
protected void onPostExecute(String result) {
contractTextTxt.setText(result);
}
@Override
protected String doInBackground(Void... params) {
return getStringFromUrl(urlReferenceTxt.getText().toString());
}
}