![](/img/trans.png)
[英]how i can add two adapters to one listView (xamarin android)
[英]how to set custom font to one of the TextView's in ListView item using adapters?
如何使用適配器將自定義字體設置為ListView項中的TextView之一?
我使用了這段代碼,但是在getView方法中遇到了運行時異常。
import java.util.ArrayList;
import java.util.HashMap;
import android.view.ViewGroup;
import com.hands.daily.duas.database.MyDbClass;
import android.app.Activity;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class LazyAdapter extends BaseAdapter {
static int i=11;
private Activity activity;
public ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
First fst=new First();
// public ImageLoader imageLoader;
String urlString="";
MyDbClass mdbclass;
public LazyAdapter(Activity a, ArrayList<HashMap<String, String>> list) {
data=new ArrayList<HashMap<String, String>>();
activity = a;
data=list;
inflater=(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.duas_rowlist, null);
TextView duatv = (TextView)vi.findViewById(R.id.textView1); // duatv
Typeface tf = Typeface.createFromAsset(convertView.getContext().getAssets(),"fonts/Molot.otf");
duatv.setTypeface(tf);
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
// Setting all values in listview
// String eventName1=song.get(First.Duas).toString();
duatv.setTextSize(i);
duatv.setText(song.get(First.Duas));
return vi;
}
}
Typeface tf = Typeface.createFromAsset(convertView.getContext().getAssets(), "fonts/Molot.otf");
那可能就是原因。 即使適配器中有convertview,也不應從convertview中獲取上下文。 這類事情屬於適配器的構造函數,它采用傳遞過來的活動的上下文。我也重新格式化了構造函數。
public ArrayList<HashMap<String, String>> data;
private LayoutInflater inflater;
private Typeface tf;
public LazyAdapter(Context context, ArrayList<HashMap<String, String>> data) {
this.data = data;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
tf = Typeface.createFromAsset(context.getAssets(), "fonts/Molot.otf");
// imageLoader=new ImageLoader(context);
}
......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.