gpt4 book ai didi

android - java.lang.NullPointerException : Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource (int)' on a null object reference 异常

转载 作者:行者123 更新时间:2023-11-29 18:41:12 24 4
gpt4 key购买 nike

我正在处理折叠视差,在坐标布局中我有一个带有 id:imageViewTest 的元素,它位于这个文件中:activity_company_detail.xml

<android.support.design.widget.AppBarLayout
...>

<android.support.design.widget.CollapsingToolbarLayout
...
>

<ImageView
android:id="@+id/imageViewTest"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@android:color/darker_gray"
tools:ignore="ContentDescription"/>

<android.support.v7.widget.Toolbar
.../>

</android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_company_detail"/>

在 fragment 类中,我尝试通过方法 view.findViewById (...) 调用这个元素 R.id.imageViewTest,这个元素在这个 fragment 的 Activity 中,有必要以编程方式改变它的功能。CompanyDetailActivityFragment.java

private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
....
view = inflater.inflate(R.layout.fragment_company_detail, container, false);
ImageView imageViewPrueba = (ImageView)view.findViewById(R.id.imageViewTest);
imageViewPrueba.setImageResource(R.mipmap.ic_logo_promo);
...
}

尝试使用此元素时出现以下错误: 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚方法“void android.widget.ImageView.setImageResource (int)”`

尝试使用 getActivity.findViewById () 但我仍然遇到问题

对不起我的英语。

感谢 @Kiryl-Tkach 的帮助。

已解决:

Activity 中:CompanyDetailActivity.java

public void setImageDrawable(){
ImageView imageViewPrueba = (ImageView) findViewById(R.id.imageViewPrueba);
imageViewPrueba.setImageDrawable(...));
}

fragment 中:CompanyDetailActivityFragment.java

@Override
public View onCreateView(){
...
((CompanyDetailActivity)getActivity()).setImageDrawable();
...
}

最佳答案

您不能这样做,因为它不在您的 fragment 布局中。查看您的方法:view.findViewById(R.id.imageViewPrueba);。您正在您的 view 对象中查看它,该对象具有布局 @layout/content_company_detail,但它对其 Activity 一无所知。您需要做的就是在您的 Activity setImageResource 中创建方法并从您的 fragment 中调用它。请记住,您的 fragment 只能操作自己的 View ,操作其他 View 的最佳做法是调用其他 Activity 和 fragment 的方法。

关于android - java.lang.NullPointerException : Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource (int)' on a null object reference 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53023975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com