我想要显示来自API数据Android Java的化身



我有一个类似的数据列表

我想在用户点击列表时显示详细信息,但我只能显示姓名和电子邮件,而不能显示头像。此处显示

我使用putExtra和getExtra进行数据迁移

这是我的RecycleAdapter.java

package com.vyzyz.modul1_kel03;
import android.content.Context;
import android.content.Intent;
import android.os.Parcelable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.vyzyz.modul1_kel03.DetailActivity;
import com.vyzyz.modul1_kel03.R;
import java.util.List;
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.ViewHolder> {
private List<DataItem> dataUser;
private Context mContext;

public RecycleAdapter(List<DataItem> dataUser, Context mContext) {
this.dataUser = dataUser;
this.mContext = mContext;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_rv_list_user, viewGroup, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
viewHolder.tvFirstName.setText(dataUser.get(i).getFirstName());
viewHolder.tvLastName.setText(dataUser.get(i).getLastName());
viewHolder.tvEmail.setText(String.format("Email : %s", dataUser.get(i).getEmail()));
Glide.with(mContext).load(dataUser.get(i).getAvatar()).into(viewHolder.imgPhotoUser);
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(mContext, DetailActivity.class);
intent.putExtra("nameF", dataUser.get(i).getFirstName());
intent.putExtra("nameL", dataUser.get(i).getLastName());
intent.putExtra( "email", dataUser.get(i).getEmail());
intent.putExtra("ava", dataUser.get(i).getAvatar());
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return dataUser.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private ImageView imgPhotoUser;
private TextView tvFirstName, tvLastName, tvEmail;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imgPhotoUser = itemView.findViewById(R.id.img_photo_user);
tvFirstName = itemView.findViewById(R.id.tv_item_first_name);
tvLastName = itemView.findViewById(R.id.tv_item_last_name);
tvEmail = itemView.findViewById(R.id.tv_item_email);
}
}
}

这是我的DetailActivity.java

package com.vyzyz.modul1_kel03;
import android.content.Context;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.bumptech.glide.Glide;
public class DetailActivity extends AppCompatActivity {
private TextView tvNama, tvEmail;
private ImageView tvPhoto;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
tvNama = findViewById(R.id.tv_first_name);
tvEmail = findViewById(R.id.user_email);
tvPhoto = findViewById(R.id.detail_photo);
if (getIntent().hasExtra("name")) {
String nama = getIntent().getStringExtra("nameF");
tvNama.setText(nama);
String mail = getIntent().getStringExtra("email");
tvEmail.setText(mail);
Glide.with(mContext).load(dataUser.get(i).getAvatar()).into(viewHolder.imgPhotoUser);
//            String poto = getIntent().getStringExtra("ava");
//            tvPhoto.setImageResource(poto);
}
}
}

有什么解决方案吗?

我想在用户点击列表时显示详细信息,但我只能显示姓名和电子邮件,而不能显示头像。此处显示

正如我从您的问题中了解到的,dataUser.get(I(.getAvatar((返回字符串。因此,与其在DetailActivity中使用它,不如将该字符串输入Extra并在DetailActivity中将其提取出来,然后在glide中使用它。

问题的原因可能是没有获取图像的url。

此外,请提供更多信息。这些信息。不足以解决问题。例如,你怎么能在DetailActivity中使用dataUser,因为它甚至没有在类中声明(它会引发编译时错误(!!

最新更新