我正在开发一个伊斯兰应用程序。 我从Sq-lite数据库获取阿拉伯字符串,但是当我尝试显示此字符串时,显示不正确。 我还设置了java页面的UTF-8编码。 但是当我直接使用这个字符串时,它以适当的风格显示。 我也在使用字体。但没有解决我的问题 任何身体都可以帮忙? 告诉我一些解决方案来解决这个问题 我的代码在这里..
String arabic ="ذَلِكَ الْكِتَابُ لَا رَيْبَ فِيهِ هُدًى لِلْمُتَّقِينَ";
当我使用它时它起作用。 但是当我使用来自sqlite db的字符串时,它显示不正确。
public class MainActivity extends Activity {
//Variables.....
TextView arabicTV,urduTV;
TableLayout tablelayout;
TableRow tableRow;
Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tablelayout = (TableLayout)findViewById(R.id.tablelayout);
Typeface arabicFont = Typeface.createFromAsset(getAssets(), "Al Qalam Quran Publisher.ttf");
DBAdapter db = new DBAdapter(this);
Cursor c =db.getAllAyyat();
if(c.moveToFirst()){
do{
String value = c.getString(0);
System.out.println(value);
tableRow = new TableRow(this);
TableRow.LayoutParams lp = new TableRow.LayoutParams(450, TableRow.LayoutParams.WRAP_CONTENT);
tableRow.setLayoutParams(lp);
lp.setMargins(4, 3, 6, 8);
arabicTV = new TextView(this);
arabicTV.setLayoutParams(lp);
arabicTV.setText(value);
arabicTV.setTypeface(arabicFont);
arabicTV.setBackgroundColor(Color.CYAN);
arabicTV.setPadding(3, 3, 3, 3);
arabicTV.setTextColor(Color.BLACK);
arabicTV.setTextSize(40);
tableRow.addView(arabicTV);
tablelayout.addView(tableRow);
}while(c.moveToNext());
}
}
答案 0 :(得分:1)
它与UTF-8或字体类型无关,我在我的应用程序中有7种不同的语言和android系统可以清楚地显示它们。
让光标查询数据库然后使用c.getString(0);这里有一个例子:Retrieving single data from SQLite and display in TextView (Android Development)
如果它仍然无法与你合作,,,我很乐意尽可能提供帮助,,, jouid33@gmail.com