我无法更改ListView字体,但edittext和textview自定义字体正在工作

时间:2014-08-20 08:28:20

标签: android listview

我可以在MainActivity.java中创建它而不创建另一个.java文件吗? 这是我的代码:

lv=(ListView) findViewById(R.id.listView1);
strArr=new ArrayList<String>();

for(int i=0; i<2 ;i++){ 
    strArr.add("Row"+i);            
    }

Typeface cFont = Typeface.createFromAsset(getAssets(), "cvv.ttf");
    lv.setTypeface(cFont);
  adapter=new ArrayAdapter<String>(getApplicationContext(),  android.R.layout.simple_list_item_1,strArr);
    lv.setAdapter(adapter);
adapter.notifyDataSetChanged();

2 个答案:

答案 0 :(得分:1)

您需要覆盖适配器的getView方法。在其中,您可以修改每个ListView项目的字体。

类似的东西:

final Typeface cFont = Typeface.createFromAsset(getAssets(), "cvv.ttf");
adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, strArr) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView textView = (TextView) super.getView(position, convertView, parent);
        if(convertView == null) {
            textView.setTypeFace(cFont);
        }
        return textView;
    }
};

答案 1 :(得分:1)

如果您在同一页面中覆盖arrayadapter,则可以。这样您就可以访问listview itemtemplate并更改它的字体。

adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, strArr) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView textView = (TextView) super.getView(position, convertView, parent);
        if(convertView == null) {
            convertView = layoutInflater.inflate( android.R.layout.simple_list_item_1, parent);

convertView.findViewById<TextView>(Resource.Id.text1).setTypeFace(cFont);
        }
        return view;
    }
};