Я пытаюсь получить изображение из restApi с архитектурой MVVM ... Я попробовал Log.d (), чтобы проверить, возвращает ли он правильный адрес или нет, и адрес правильный, но все еще появляется ошибка ... пожалуйста, кто-нибудь попытается понять где проблема
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this,
drawerLayout, R.string.open, R.string.close);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
profileImage=findViewById(R.id.ProfileImage);
String token =getIntent().getStringExtra("token");
String mToken="token " + token;
viewModelClass=new ViewModelProvider(this).get(ViewModelClass.class);
viewModelClass.getProfile(mToken).observe(this, new Observer<Profile>() {
@Override
public void onChanged(Profile profile) {
Log.d("dfd","http://192.168.43.216:8000"+profile.getProfile_photo());
Picasso.get().load("http://192.168.43.216:8000" +profile.getProfile_photo()).into(profileImage);
}
});
}
Ошибки.
java.lang.IllegalArgumentException: Target must not be null.
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:682)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:665)
at com.hrishi.myapplication.UserActivity$1.onResponse(UserActivity.java:70)
at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:82)
at retrofit2.-$$Lambda$DefaultCallAdapterFactory$ExecutorCallbackCall$1$3wC8FyV4pyjrzrYL5U0mlYiviZw.run(Unknown Source:6)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6724)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Я использую DrawerLayout
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:layout_height="180dp">
<ImageView
android:id="@+id/ProfileImage"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
Основной макет, в котором реализован вид навигации.
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:id="@+id/drawerLayout"
tools:context=".UserActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/toolbar_main"
android:id="@+id/toolbar"/>
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:headerLayout="@layout/nav_header"
app:menu="@menu/menu_nav"
android:layout_gravity="start"/>
</androidx.drawerlayout.widget.DrawerLayout>
activity_user. xml.
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:id="@+id/drawerLayout"
tools:context=".UserActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/toolbar_main"
android:id="@+id/toolbar"/>
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:headerLayout="@layout/nav_header"
app:menu="@menu/menu_nav"
android:layout_gravity="start"/>
</androidx.drawerlayout.widget.DrawerLayout>
nav_header. xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="vertical"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:layout_height="180dp">
<ImageView
android:id="@+id/ProfileImage"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
на самом деле я использую «макет заголовка» в «макете ящика», там у меня возникают проблемы если я создаю imageView в основном действии, тогда отображается изображение