2016-05-20 4 views
0

Быстрый вопрос. Я написал несколько классов классов и включил их в фрагмент через XML. Эти классы видятся завышенными.Методы вызова класса из завышенного вида

private void inflateView(Context context){ 
    inflater =(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    inflater.inflate(R.layout.layout_motoreffiziens_view, this, true); 
} 

В onCreateView моего фрагмента я получаю ссылку View с помощью findViewById. Чтобы выполнить полную задачу, я реализовал прослушиватель для моего представления, который я могу добавить с помощью моего метода-метода addListeners (myCustomListener).

Моя проблема теперь в том, что я не могу вызвать методы вызова (потому что это явно View, а не ClassReference).

My View Header

public class MotorSelection extends RelativeLayout implements Spinner.OnItemSelectedListener { 

private LayoutInflater inflater; 
private SpinnerChange spinnerChangeListener = null ; 

Это View вложен в моем Фрагменте XML:

<com.example.andy.einzelprojekt1.views.MotorSelection 
    android:id="@+id/view_motor_selection" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

Так что мой вопрос, как я могу использовать мои методы из завышенных представлений? Конкретно:

В onCreate моего фрагмента я хочу просмотреть этот вид и добавить слушателя.

Приветствия

/д 20.5.16

+0

Я думаю, вам просто нужно, чтобы бросить свой взгляд на свой класс, который расширяет View, но вы должны предоставить больше кода, чтобы быть уверенным, и лучше помочь вам –

ответ

0

Можете ли вы опубликовать код вашего View класса?
На самом деле, завышенный вид - это экземпляр вашего класса, поэтому вы можете позвонить по телефону view.yourMethod().

Другой способ (если у меня что-то отсутствует в вашем вопросе), является использование Reflection. Например, this.

+0

да. Я думал, что, но методы не так уж и дороги. – Offset

0

Хорошо, глупая ошибка. I кастет мой взгляд на расширенный объект (в моем случае RelativeLayout). Из-за этого я не смог получить доступ к моим методам, объявленным в новом ViewClass.

motorselection = (MotorSelection) rootView.findViewById(R.id.view_motor_selection); 

/ответил

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