簡體   English   中英

Android:在ListView中顯示特殊字符

[英]Android: Display special characters in ListView

此時我正在創建一個小型Android應用程序,作為一種愛好。 它並不嚴肅:它從sqlite數據庫進行查詢,並在listview元素中顯示結果。 如果單擊列表中的某個項目,它將使用該元素的內容進行另一個查詢,並顯示新結果。 (例如,您點擊一個城市,它會顯示城市中的餐館。如果您點擊該城市,它會顯示可用的食物)

現在我的問題是這些文本中的大多數包含一些未正確顯示的特殊字符(如Ľ - u013D)。 由於它們顯示不正確,我也無法與它們進一步查詢。 我已經嘗試了很多方法,主要是我在這個論壇上看到的,但不幸的是,我太過於努力了。 這就是我所擁有的:

//DataBaseHandler is just a custom class creating and executing SQL queries, nothing special. It extends to SQLiteOpenHelper
DataBaseHandler db=new DataBaseHandler(this);

//getStations returns a List<String> object with the required items, contains raw strings        
ArrayList<String> StationList=(ArrayList<String>) db.getStations(i.getStringExtra("jaratszam"));

db.close();

lv=(ListView) findViewById(R.id.listStation);

ArrayAdapter<String> aa=new ArrayAdapter<String>(this, R.layout.tv, StationList);          

lv.setAdapter(aa);

我試圖用Html.fromHtml修改我得到的字符串,也修改了CharSequence [],但沒有一個幫助(我想我沒有正確使用它們)。 我也修改了我的數據庫,我已將特殊字符更改為html代碼,如

&#00E1;

能不能請你告訴我應該怎樣做?

提前致謝。

您可能需要為String使用正確的字符集,盡管UTF-8(默認值)應支持大多數外來字符和特殊字符。 以下是使用舊String中的自定義字符集創建新String的方法:

String newString = new String(oldString.getBytes(), Charset.YOUR_CHARSET_HERE);

現在我的問題是這些文本中的大多數包含一些未正確顯示的特殊字符(如Ľ - u013D)。

嘗試在將字符串放入數據庫之前對其進行編碼,然后在應用程序中使用它之前將其解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM