У меня возникли проблемы с NullReferenceExcpetion в ImageView после того, как я использую LayoutInflater для раздувания родительского макета. Как вы можете видеть в приведенном ниже XML-коде макета, у меня есть два TextView и один ImageView. Я могу ссылаться на оба TextViews просто отлично, но не на ImageView.
Когда я углубляюсь в свойства дочерних представлений раздутого макета, я вижу, что свойство mID обоих TextView правильно, однако mID ImageView равно -1.
Кто-нибудь знает, почему только ImageView отображается как NULL? Я уверен, что это что-то глупое, но я просто не могу понять это. Я также воссоздал XML-файл макета, очистил свой проект и т. д.
Заранее спасибо!!
XML макета:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout android:layout_width="120px"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/weather_forecast_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textStyle="bold"/>
<ImageView android:id="@+id/weather_forecast_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
<TextView android:id="@+id/weather_forecast_temps"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
Код:
mForecastItem = (LinearLayout)View.inflate(WeatherLookup.this, R.layout.weather_forecast_item, null);
((ImageView)mForecastItem.findViewById(R.id.weather_forecast_icon))
.setImageDrawable(getResources().getDrawable(R.drawable.weather_sunny));
((TextView)mForecastItem.findViewById(R.id.weather_forecast_day))
.setText(forecast.DayOfWeek);
((TextView)mForecastItem.findViewById(R.id.weather_forecast_temps))
.setText(forecast.High + "\u2109 / " + forecast.Low + "\u2109");