我有一个Android应用程序,该应用程序从Oracle数据库(字符集US7ASCII)中检索信息(注释),此信息通过使用FileWriter的函数存储在系统上,然后在被请求时,将其读取并填充TextView另一个功能
问题是:即使文本上很难有“ \ n”,TextView也无法将其识别为换行符。
我对字符串进行了替换测试,以检查“ \ n”是否存在,实际上是否存在。
我还尝试直接设置“ Teste \ nTeste2”之类的文本,并且可以正常工作。
好吧,不管您相信与否,下面的黑引号都存在与我的TextView相同的问题。
巴塔酒作为克拉姆斯的全部储备 被误称为双子座,是玛格丽娜玛格丽娜在汽车上 Acrescente o leite e a farinha de trigo aos poucos,塞姆帕拉德巴特 阿迪西翁·阿尔蒂莫·波拉蒂莫 Despeje a massa em uma forma grande de furo Central untada e Enfarinhada Asse em fornomádio180°C,preaquecido,por aproximadamente 40 minutos ou ao furar o bolo com garfo,este saia limpo
我尝试过的替换:
The first 4 replacements did not work
string = string.replace("\r\n", "\n");
string = string.replace("\\n","\n");
string = string.repalce("\\\n","\n");
string = string.replace("\n", System.getProperty(System.lineSeparator()));
<br>
string = string.replace("\n", "BANANA"); // this one actually worked, but I cant breakline with a BANANA, right? Anyway...
这是我用来更新TextView的功能:
public void update_details(View view, String description, String comments){
TextView tv = view.findViewById(R.id.if_description);
tv.setText(description);
TextView tv2 = view.findViewById(R.id.if_comments);
tv2.setText(comments);
}
这是menu03_tab2中的xml,其中包含我要设置文本的注释
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout_editor_absoluteY="81dp">
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="10dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="60dp"
android:background="@color/netcracker_1">
</TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/if_description"
android:textSize="15dp"
android:textStyle="bold" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="140dp"
android:background="#d3d3d3">
<TextView
android:id="@+id/if_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#d3d3d3" />
</ScrollView>
<TableRow
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="@color/netcracker_1">
</TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/if_comments"
android:textSize="15dp"
android:textStyle="bold"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#d3d3d3">
<TextView
android:id="@+id/if_comments"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#d3d3d3" />
</ScrollView>
</LinearLayout>
提前感谢您的时间。
答案 0 :(得分:0)
如果确实存在换行符,请使用此:
public String restore(String s) {
String[] lines = s.split("\n");
String result = "";
for (int i = 0; i < lines.length; i++) {
result += lines[i].trim() + "\n";
}
return result.trim();
}
然后是tv.setText(restore(description));
检查是否有区别。