2011-11-21 63 views
0

我填入ListView數據庫。 DB中的一個字段包含文本\ n。但是當我把這個文本放入該項目時,我不會得到Newline而不是\ n。我該如何正確地從數據庫中獲取這些文本並將其放入項目中?爲什麼 n不能從數據庫中工作?

我的代碼:

txtComment = (TextView) convertView.findViewById(R.id.txt_comment); 
this.cur.moveToPosition(position); 
txtComment.setText(this.cur.getString(this.cur.getColumnIndex("comment"))); 

在DB項目:

探頭始建於土地上的大...岩石帶回地球\ nSuch創業應...

結果的android:

探頭始建於土地上的大...岩石帶回地球\ nSuch一個風險應...

我預計:

的探測器是爲了降落在地球上而建造的。

這樣的企業應該...

的TextViewitem.xml

<TextView 
    android:id="@+id/txt_comment" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:paddingLeft="5dip" 
    android:padding="5dip" 
    android:textColor="#fff" 
    android:textSize="12sp" /> 

內容DB我通過解析JSON服用。我可以要求開發人員插入其他字符而不是\ n。但是什麼?

+1

你得到什麼呢? – kabuko

+0

我不認爲這與DB有關。數據庫只是存儲它所提供的內容。所以可能有兩個問題:(1)當你插入/更新數據時,你不會將換行符傳遞給數據庫,或者(2)你的'TextView'被指示(可能是隱式地)顯示唯一的文本行。可能會發布您的佈局xml列表項。 –

+0

@kabuko我已經添加了我所取得的。 – Sviatoslav

回答

2

包含反斜槓後跟n的字符串與包含換行符的字符串非常不同。只有當字符串被解析爲字符串文字時,Java纔會以不同的方式處理它們。如果你想在數據庫中存儲一個換行符,你應該將它存儲在開始的值中。如果要應用Java字符串文字轉義,則需要找到一些適當的代碼來執行此操作 - 其中不是,就像text.replace("\\n", "\n")一樣簡單,例如,需要考慮如"escaped\\n"

我懷疑會有一些字符串實用程序庫可以做到這一點 - 例如,Apache Commons的StringEscapeUtils類看起來像是一個很好的起點,如果它在Android中有效。

相關問題