2017-01-03 4 views
0

Я хотел сделать специальный шрифт для одного из моих TextView, но я все еще получаюпользовательских шрифтов в ExpandableListView Android

cannot resolve method getAssets() 

Вот часть кода:

@Override 
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
    final String childText = (String)getChild(groupPosition, childPosition); 
    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater)this._context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_item, parent, false); 
    } 
    Utils.setFontAllView((ViewGroup)convertView); 

    TextView txtListChild = (TextView)convertView.findViewById(R.id.txtcardname); 
    txtListChild.setTypeface(null, Typeface.BOLD); 

    TextView kategoria = (TextView)convertView.findViewById(R.id.kategoria); 
    kategoria.setText(this.KATEGORIE[numerKategori]); 


    custom_font = Typeface.createFromAsset(getAssets(), "fonts/capture.ttf"); 
    txtListChild.setTypeface(custom_font); 

Я хочу сделать он с этим кодом:

custom_font = Typeface.createFromAsset(getAssets(), "fonts/capture.ttf"); 
     txtListChild.setTypeface(custom_font); 

ответ

0

обновления код этого он будет работать:

custom_font = Typeface.createFromAsset(mContext.getAssets(), "fonts/capture.ttf"); 

Вы не можете получить доступ к своим активам без контекста своего вида. Таким образом, контекст является обязательным

Вместо того, чтобы устанавливать шрифты внутри метода getView, вы можете определить шрифты в своем классе пользовательского текста, используя это, это займет меньше памяти, а производительность вашего приложения будет лучше.

0

Вы можете вызвать getAssets с контекстом. Используйте это:

custom_font = Typeface.createFromAsset(this._context.getAssets(), "fonts/capture.ttf"); 

Удачи.

0

Как вы хотите использовать его в адаптер из кода

ли ниже изменения

Использование Context

Убедитесь, что в вашей папке активов под шрифтами есть файл capture.ttf

check Путь к файлу capture.ttf

Context context = null; 
      Typeface custom_font = Typeface.createFromAsset(context.getAssets(), "fonts/capture.ttf"); 
     txtListChild.setTypeface(custom_font);