我尝试根据选定的Spinner元素在MainActivity中加载图片。
因此,如果我的微调器在布局中包含两个通道名称,并且这些名称存储在数组通道中= [" skysports"," premierlive"]
我已经定义了我的ImageView:
user_id | phrase_id | rating
_________________________________________
a | 1 | bad
a | 2 | good
a | 3 | bad
b | 1 | good
b | 2 | bad
b | 3 | bad
创建Spinner时,我使用此频道数组,然后从那里调用
ImageView logo = (ImageView) findViewById(R.id.logo);
其中channels [i]是当前选择的Spinner元素。
最后,我试图用getLogo中的switch-case实现这个图像开关:
getLogo(channels[i]);
这一切都给了我
java.lang.NullPointerException:尝试调用虚方法' void android.widget.ImageView.setImageResource(INT)'在null对象上 参考
我该怎么办? TNX
编辑:
activity_main:
public void getLogo(String channel){
switch(channel){
case ("skysports"):
logo.setImageResource(R.drawable.skysports);
break;
case ("premierlive"):
logo.setImageResource(R.drawable.premierlive);
break;
}
}
和MainActivity:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinnerMain"
android:paddingLeft="30dp"
android:paddingRight="10dp"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:clickable="true"
android:touchscreenBlocksFocus="true"
android:layout_alignParentTop="true"
android:visibility="visible"
android:textSize="@android:dimen/app_icon_size"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/logo"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp" />
</RelativeLayout>
}
答案 0 :(得分:1)
我在您的活动中提供私有字段徽标,并在onCreate方法中提供一个名为logo的局部变量,该变量是初始化的变量。在onCreate方法中,您需要初始化要在类的其他方法中使用的私有字段,而不是
ImageView logo = (ImageView) ...
你应该
logo = (ImaView) ...