Android 自定义ListView适配器中的自定义字体(unicode)不';不显示
我想用Unicode创建一个自定义列表适配器。这是我的代码,它编译时没有任何错误,但没有显示Unicode字符。请帮我纠正这个问题。谢谢你 自定义列表视图适配器Android 自定义ListView适配器中的自定义字体(unicode)不';不显示,android,Android,我想用Unicode创建一个自定义列表适配器。这是我的代码,它编译时没有任何错误,但没有显示Unicode字符。请帮我纠正这个问题。谢谢你 自定义列表视图适配器 package com.theopentutorials.android.beans; import java.util.List; import com.theopentutorials.android.R; import com.theopentutorials.android.beans.RowItem; import an
package com.theopentutorials.android.beans;
import java.util.List;
import com.theopentutorials.android.R;
import com.theopentutorials.android.beans.RowItem;
import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomListViewAdapter extends ArrayAdapter<RowItem> {
Context context;
public CustomListViewAdapter(Context context, int resourceId,
List<RowItem> items) {
super(context, resourceId, items);
this.context = context;
}
/* private view holder class */
private class ViewHolder {
ImageView imageView;
TextView txtTitle;
TextView txtDesc;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowItem rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
holder.imageView = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
holder.txtDesc.setText(rowItem.getDesc());
holder.txtTitle.setText(rowItem.getTitle());
holder.imageView.setImageResource(rowItem.getImageId());
return convertView;
}
}
package com.theopenutorials.android.beans;
导入java.util.List;
导入com.theopenutorials.android.R;
导入com.theopenutorials.android.beans.RowItem;
导入android.app.Activity;
导入android.content.Context;
导入android.graphics.Typeface;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
公共类CustomListViewAdapter扩展了ArrayAdapter{
语境;
公共CustomListViewAdapter(上下文上下文,int resourceId,
(列表项目){
超级(上下文、资源ID、项目);
this.context=上下文;
}
/*私有视图持有者类*/
私有类视窗持有者{
图像视图图像视图;
TextView-txtTitle;
TextView-txtDesc;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
RowItem RowItem=getItem(位置);
LayoutInflater mInflater=(LayoutInflater)上下文
.getSystemService(活动.布局\充气机\服务);
if(convertView==null){
convertView=mInflater.充气(R.layout.list_项,空);
holder=新的ViewHolder();
holder.txtDesc=(TextView)convertView.findViewById(R.id.desc);
holder.txtTitle=(TextView)convertView.findViewById(R.id.title);
holder.imageView=(imageView)convertView.findViewById(R.id.icon);
convertView.setTag(支架);
}否则
holder=(ViewHolder)convertView.getTag();
holder.txtDesc.setText(rowItem.getDesc());
holder.txtitle.setText(rowItem.getTitle());
holder.imageView.setImageResource(rowItem.getImageId());
返回视图;
}
}
ImageTextListViewActivity
package com.theopentutorials.android.beans;
import java.util.ArrayList;
import java.util.List;
import com.theopentutorials.android.R;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
public class ImageTextListViewActivity extends Activity implements
OnItemClickListener {
public static final String[] titles = new String[] { "කළමනාකාරීත්වයක්",
"පරිසරයට", "සමාගම ", "XXXXXX " };
public static final String[] descriptions = new String[] {
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"cccccccccccccccccccccccccccccc", "dddddddddddddddddddddddddddddd" };
public static final Integer[] images = { R.drawable.straw,
R.drawable.banana, R.drawable.orange, R.drawable.mixed };
ListView listView;
List<RowItem> rowItems;
public Typeface myTypeface;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myTypeface = Typeface
.createFromAsset(getAssets(), "fonts/iskpotab.ttf");
EditText edt1 = (EditText) findViewById(R.id.editText1);
edt1.setText("කළමනාකාරීත්වයක්");
edt1.setTypeface(myTypeface);
rowItems = new ArrayList<RowItem>();
for (int i = 0; i < titles.length; i++) {
RowItem item = new RowItem(images[i], titles[i], descriptions[i]);
rowItems.add(item);
}
listView = (ListView) findViewById(R.id.list);
CustomListViewAdapter adapter = new CustomListViewAdapter(this,
R.layout.list_item, rowItems);
listView.setAdapter(adapter);
listView.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast toast = Toast.makeText(getApplicationContext(), "Item "
+ (position + 1) + ": " + rowItems.get(position),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
}
}
package com.theopenutorials.android.beans;
导入java.util.ArrayList;
导入java.util.List;
导入com.theopenutorials.android.R;
导入android.app.Activity;
导入android.graphics.Typeface;
导入android.os.Bundle;
导入android.view.Gravity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.EditText;
导入android.widget.ListView;
导入android.widget.Toast;
公共类ImageTextListViewActivity扩展了活动实现
麦克利克监听器{
公共静态最终字符串[]标题=新字符串[]{”කළමනාකාරීත්වයක්",
"පරිසරයට", "සමාගම “,”XXXXXX“};
公共静态最终字符串[]说明=新字符串[]{
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
“CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC;
公共静态最终整数[]图像={R.drawable.straw,
R.drawable.banana,R.drawable.orange,R.drawable.mixed};
列表视图列表视图;
列出项目;
公共字体我的字体;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myTypeface=字体
.createFromAsset(getAssets(),“font/iskpotab.ttf”);
EditText edt1=(EditText)findViewById(R.id.editText1);
edt1.setText(“කළමනාකාරීත්වයක්");
edt1.setTypeface(我的字体);
rowItems=新的ArrayList();
对于(int i=0;i
行项目
package com.theopentutorials.android.beans;
public class RowItem {
private int imageId;
private String title;
private String desc;
public RowItem(int imageId, String title, String desc) {
this.imageId = imageId;
this.title = title;
this.desc = desc;
}
public int getImageId() {
return imageId;
}
public void setImageId(int imageId) {
this.imageId = imageId;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return title + "\n" + desc;
}
}
package com.theopentutorials.android.beans;
import java.util.HashMap;
import java.util.List;
import com.theopentutorials.android.R;
import android.content.Context;
import android.graphics.Typeface;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class SpecialAdapter extends SimpleAdapter {
public SpecialAdapter(Context context, List<HashMap<String, String>> items,
int resource, String[] from, int[] to) {
super(context, items, resource, from, to);
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
((TextView) view.findViewById(R.id.desc)).setTypeface(Typeface
.createFromAsset(view.getContext().getAssets(),
"fonts/iskpotab.ttf"));
((TextView) view.findViewById(R.id.title)).setTypeface(Typeface
.createFromAsset(view.getContext().getAssets(),
"fonts/iskpotab.ttf"));
return view;
}
}
package com.theopenutorials.android.beans;
公共类行项目{
私有int-imageId;
私有字符串标题;
私有字符串描述;
公共行项目(int-imageId、字符串标题、字符串描述){
this.imageId=imageId;
this.title=标题;
this.desc=desc;
}
public int getImageId(){
返回imageId;
}
公共无效setImageId(int-imageId){
this.imageId=imageId;
}
公共字符串getDesc(){
返回描述;
}
公共void setDesc(字符串desc){
this.desc=desc;
}
公共字符串getTitle(){
返回标题;
}
公共无效集合标题(字符串标题){
this.title=标题;
}
@凌驾
公共字符串toString(){
返回标题+“\n”+desc;
}
}
包com.theopenutorials.android.beans;
导入java.util.HashMap;
导入java.util.List;
导入com.theopenutorials.android.R;
导入android.content.Context;
导入android.graphics.Typeface;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.simpledapter;
导入android.widget.TextView;
公共类SpecialAdapter扩展了SimpleAdapter{
公共SpecialAdapter(上下文、列表项、,
int资源,字符串[]from,int[