Я работаю со сворачивающимся параллаксом, внутри компоновки координат у меня есть элемент с 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"/>
В классе фрагмента я пытаюсь вызвать этот элемент R.id.imageViewTest через метод view.findViewById (...), этот элемент находится в активности этого фрагмента , необходимо программно изменить егофункциональность.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 (), но я все еще в проблеме
Извините за мой английский.
Спасибо за помощь @Кирил-Ткач.
Разрешено :
В деятельности: CompanyDetailActivity.java
public void setImageDrawable(){
ImageView imageViewPrueba = (ImageView) findViewById(R.id.imageViewPrueba);
imageViewPrueba.setImageDrawable(...));
}
Во фрагменте: CompanyDetailActivityFragment.java
@Override
public View onCreateView(){
...
((CompanyDetailActivity)getActivity()).setImageDrawable();
...
}