2016-03-12 2 views
2

Этот код принадлежит моему массиву для пользовательского spinner.I'm получить ошибку не удается решить метод по методу getLayoutInflater(), и я не знаю почему. Любая помощь будет оценена по достоинству.getLayoutInflater не может решить

public View getCustomView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater= getLayoutInflater(); 
    View mySpinner = inflater.inflate(R.layout.spinneritems, parent, false); 

    TextView main_text = (TextView) mySpinner.findViewById(R.id.spinneritem); 
    main_text.setText(spinnerValues[position]); 
    return mySpinner; 
} 

}

+1

метод getLayoutInflater применим из контекста объекта. В конструкторе адаптера вам необходимо передать объект контекста и вызвать метод. –

ответ

2

Попробуйте, как это

LayoutInflater inflater= getActivity().getLayoutInflater(); 

или

LayoutInflater inflater= youContext.getLayoutInflater(); 

потому, что метод getLayoutInflater() принадлежат Activity и вы должны получить его с getActivity() методом или передать контекст в ваш adapter конструктор, например:

общественного класса YourAdapter расширяет ArrayAdapter {

private Context mContext; 
    private ArrayList<Strings> someList; 

    public YourAdapter (Context context, ArrayList<String> someList) { 
     super(context, R.layout.comment_item, someList); 
     **this.mContext = context;** 
     this.someList = someList; 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) View rowView = convertView; 
     if (rowView == null) { 
      LayoutInflater inflater = **mContext**.getLayoutInflater(); 
      rowView = inflater.inflate(R.layout.yourItem, null); 

      rowView.setTag(viewHolder); 
     } 

     return rowView; 
    } 

} 

и в вашем Activity

YourAdapter mAdapter = new YourAdapter (**getActivity()**,someList); 
+0

Извините, но все равно не может решить метод в любом случае. –

+0

с getActivity() и с контекстом не работает? –

+0

проверить мое обновление, вы сделали это вот так? –

2

не может решить метод на getLayoutInflater()

Android getLayoutInflater() извлеките стандартный экземпляр LayoutInflater, который уже подключен к текущему контексту и правильно настроен для устройства, на котором вы работаете.

В здесь вам не хватает, чтобы установить Контекст

Не

LayoutInflater inflater= getLayoutInflater(); 

ли

LayoutInflater inflater= Your_class_context.getLayoutInflater(); 
+1

Спасибо за лучшее объяснение человека. –

Смежные вопросы