Проблема при настройке видимости LinearLayout

#android #nullpointerexception #visibility

#Android #исключение nullpointerexception #видимость

Вопрос:

Соответствующий XML:

 <LinearLayout
    android:id="@ id/linear_layout_video_feed_list_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:layout_weight="2">
    <ListView
    android:id="@ id/list_video_feed"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    </ListView>
</LinearLayout>
  

Соответствующий КОД:

 linearLayoutVideoFeedListView = (LinearLayout) findViewById(R.id.linear_layout_video_feed_list_view);
lv = (ListView) findViewById(R.id.list_video_feed)
  

lv.setVisibility(GONE) работает, но linearLayoutVideoFeedListView.setVisibility(GONE) вызывает исключение nullpointer. Кто-нибудь знает почему?

Комментарии:

1. Вы вызываете linearLayoutVideoFeedListView.setVisibility(GONE) после lv = (ListView) findViewById(R.id.list_video_feed) ?

2. Можете ли вы скрыть корневое представление, если оно является самым верхним родительским?

3. @Spidy linearLayoutVideoFeedListView не является корневым представлением. Он завернут в другой LinearLayout .

Ответ №1:

Если linear_layout_video_feed_list_view не был выложен перед вызовом

linearLayoutVideoFeedListView.setVisibility (ИСЧЕЗ)

это приведет к нулевому указателю. Если это действительно проблема здесь, попробуйте раздуть ее:

LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Контекст.LAYOUT_INFLATER_SERVICE); RelativeLayout MyView = (RelativeLayout) mInflater.inflate(R.id.linear_layout_video_feed_list_view, null);

Надеюсь, это поможет

Комментарии:

1. При объявлении mContext и mInflater: Context mContext; какой тип mInflater?

2. И еще одна мысль, linearLayoutVideoFeedListView должно быть выложено, потому что я могу вызвать lv.setVisibility(GONE) который вложен внутри linearLayoutVideoFeedListView . Верно?

Ответ №2:

Я бы попробовал

 linearLayoutVideoFeedListView.setVisibility(LinearLayout.GONE); 
  

это то, что всегда работало для меня

Комментарии:

1. Я попробовал это, и я все еще получаю исключение NullPointerException. Есть еще идеи? Спасибо.