2015-06-14 59 views
0

我想将列表视图的字体设置为araliya.ttf。这是我的代码。没有错误,但在listview文本中的字体没有改变(在文本浏览和按钮中改变了)有人可以告诉我这里有什么问题。三江源..在android的listview中设置字体为文字

public class MyCustomAdapter extends ArrayAdapter<Item> { 

     private ArrayList<Item> itemList; 
     Typeface tf; 

     public MyCustomAdapter(Context context, int textViewResourceId, 
           ArrayList<Item> itemList) { 
      super(context, textViewResourceId, itemList); 
      this.itemList = new ArrayList<Item>(); 
      this.itemList.addAll(itemList); 
      // tf = Typeface.createFromAsset(context.getAssets(), "araliya.ttf"); 
     } 

     private class ViewHolder { 
      TextView code; 
      CheckBox name; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      ViewHolder holder = null; 
      Log.v("ConvertView", String.valueOf(position)); 

      if (convertView == null) { 
       LayoutInflater vi = (LayoutInflater)getSystemService(
         Context.LAYOUT_INFLATER_SERVICE); 
       convertView = vi.inflate(R.layout.symptom_info, null); 
       sinfont = Typeface.createFromAsset(getAssets(), "araliya.ttf"); 
       holder = new ViewHolder(); 
       holder.code = (TextView) convertView.findViewById(R.id.code); 
       holder.code.setTypeface(sinfont); 
       holder.name = (CheckBox) convertView.findViewById(R.id.checkBox1); 
       holder.name.setTypeface(sinfont); 
       convertView.setTag(holder); 

这里是我的代码的OnCreate()

dataAdapter = new MyCustomAdapter(this, 
       R.layout.symptom_info, itemList); 
     ListView listView = (ListView) findViewById(R.id.listView1); 
     listView.setAdapter(dataAdapter); 


     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       // When clicked, show a toast with the TextView text 
       Item item = (Item) parent.getItemAtPosition(position); 

      } 
     }); 

更新 - 已解决的问题

TextView t1 = (TextView)findViewById(R.id.textView2); 
t1.setTypeface(sinfont); 
t1.setText("my,ska m%fNoh f;dard.kak"); 

这工作完全和改变的TextView文本的字体。

+0

你添加的字体的.ttf文件入资产价值/字体设置字体? –

+0

是的,我补充一点。在所有文本视图和按钮文本甚至微调文本中改变字体。但它在列表视图中没有改变。请帮忙! – user3406362

+0

我已经添加了答案。这是因为你没有设置正确的字体路径。 –

回答

0

我很确定你没有设置正确的路径。

Typeface sinfont = Typeface.createFromAsset(getAssets(), "araliya.ttf"); 

这里araliya.ttf不正确的路径。它应该是fonts/araliya.ttf

其实createFromAsset里面的秒参数代表字体的路径。所以,如果你已经把字体放在资产/字体中。然后下面是初始化字体所需的代码。

String path = "fonts/araliya.ttf" 
Typeface sinfont = Typeface.createFromAsset(getAssets(), path); 

然后,你可以使用

holder.code.setTypeface(sinfont); 
+0

我在资产文件夹中有araliya.ttf。 TextView t1 =(TextView)findViewById(R.id.textView2); t1.setTypeface(sinfont); t1.setText(“my,ska m%fNoh f; dard.kak”); 这可以很好地工作,并改变textview中文本的字体。 – user3406362

+0

然后尝试将其更改为字体文件夹。如果它仍然不能正常工作,那么请用另一种字体进行测试。 –

+0

如果你已经解决了这个问题,请用你的答案更新你的问题。 –

相关问题