2013-07-08 2 views
1

При использовании view.findViewById(id) в моем фрагменте, чтобы найти ListView, это возвращает штраф, и я могу использовать это значение, однако, когда я пытаюсь найти ImageView, используя тот же самый метод, но просто изменив идентификатор на правильный, он вернет null, что вызывает проблемы позже в приложении.view.findViewById возвращает null для ImageView, но не ListView

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View fragmentView = inflater.inflate(R.layout.fragment_boardlist, 
       container, false); 

     boardListView = (ListView) fragmentView 
       .findViewById(R.id.fragmentListView); 
     stickyImageView = (ImageView) fragmentView 
       .findViewById(R.id.favouriteImageView); 

      // ...   

     return fragmentView; 
    } 

Не знаю, почему это происходит, как я использую тот же самый путь, так что я был интересно, если кто-то знал, почему.

Вот XML:

<TextView 
    android:id="@+id/initialsTextView" 
    android:layout_width="35dp" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:gravity="center_vertical" 
    android:textSize="12sp" /> 

<TextView 
    android:id="@+id/fullNameTextView" 
    android:layout_width="0dp" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="10dp" 
    android:layout_marginTop="10dp" 
    android:layout_weight=".85" 
    android:gravity="center_vertical" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ImageView 
    android:id="@+id/favouriteImageView" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:layout_weight=".15" 
    android:clickable="true" 
    android:contentDescription="@string/imageview_contentdescription" 
    android:src="@android:drawable/star_big_off" /> 

+1

Можете ли вы разместить xml, где находится ImageView? – Emmanuel

+0

@ E.Odebugg, конечно. Я добавил его к вопросу. – Dan

+0

Вы забыли скопировать часть ListView вашего XML-файла? – dymmeh

ответ

0

Поправьте меня, если я ошибаюсь, но если вы пытаетесь получить доступ к ImageView, который является частью пользовательской строки из ListView, сначала вам нужно установить адаптер. Затем вам необходимо переопределить getView() из адаптера. Затем получите ссылку на ImageView.

+0

Да, ImageView является частью пользовательской строки. У меня установлен адаптер с обработкой getView(), данные будут правильно заполнены в приложении, но в моем фрагменте я пытаюсь настроить прослушиватель ImageView, чтобы пользователь мог переключать строку в качестве избранного. – Dan

+0

А, я просто понял это. Я пытался поместить слушателя в фрагмент, который теперь я подумал над ним, был глуп. Мне просто нужно настроить слушателя в методе 'getView()' в адаптере. Благодарю. – Dan

+0

Рад, что я смог помочь! – Emmanuel

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