Я создаю пользовательский / расширенный LinearLayout, который я добавляю в ViewAnimator, очевидно, для классных эффектов.
Итак, в моей основной деятельности есть ViewAnimator, и я создаю экземпляр этого NavigationView, над которым я работал, и добавляю его в ViewAnimator в качестве подпредставления. Сам NavigationView использует LayoutInflater, чтобы получить xml для интерфейса, который я создал, и присоединяет его к себе.
Затем я пытаюсь найти этот спиннер, который, как я знаю, имеет правильный идентификатор, и он всегда возвращает ноль. Если я использую этот XML в качестве основного представления содержимого действия, у меня не будет проблем с поиском счетчика.
Вот мой код:
public class NavigationView extends LinearLayout {
public NavigationView(Context context) {
super(context);
addView(context);
}
public NavigationView(Context context, AttributeSet attrs) {
super(context, attrs);
addView(context);
}
public void addView(Context context) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.nav, this, true);
Spinner spinner = (Spinner) findViewById(R.id.nav_spinner);
if(spinner == null) Log.v("spinner", "null");
}
}
Так что я всегда вижу «спиннер» как «ноль» в LogCat.
Я вижу, что интерфейс, который я создал, добавлен на экран, но это сводит меня с ума, почему он не находит этот объект по идентификатору.
Может быть, раздули, что он не правильно назначает идентификаторы?