错误:
Attempt to invoke virtual method 'android.view.View android.widget.ImageView.findViewById(int)' on a null object reference
或
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageDrawable(android.graphics.drawable.Drawable)'
SecondLayout.xml:
<ImageView
android:id="@+id/cafe"
android:layout_width="100dp"
android:layout_height="90dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="right"
android:src="@drawable/cafe" />
<ImageView
android:id="@+id/baron"
android:layout_width="100dp"
android:layout_height="90dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_gravity="right"
android:src="@drawable/bar" />
第一堂课有OneLayout.xml
ExampleBottomSheetDialog.class具有SecondLayout.xml
在第一个类中,当您单击标记时,将激活ExampleBottomSheetDialog.class:
public boolean onMarkerClick(final Marker marker) {
ExampleBottomSheetDialog bottomSheet = new ExampleBottomSheetDialog();
bottomSheet.show(getSupportFragmentManager(), "exampleBottomSheet");
// Image replacement
if (...) {
ImageView img= (ImageView) findViewById(R.id.cafe);
img.setImageResource(R.drawable.bar);
}
如何解决空对象问题?
答案 0 :(得分:2)
您尝试访问ImageView
中的ExampleBottomSheetDialog
,但未创建视图(因此ImageView
为空)。
您必须为ExampleBottomSheetDialog
提供参数,并在ExampleBottomSheetDialog
类中管理可绘制的ImageView资源(例如,在onCreateDialog
方法中)。