Android 我正在尝试使用GridLayoutManager和自定义适配器创建一个RecyclerView
我正在尝试使用Android 我正在尝试使用GridLayoutManager和自定义适配器创建一个RecyclerView,android,Android,我正在尝试使用GridLayoutManager和自定义适配器创建RecyclerView,但图像没有显示。我被卡住了,不知道怎么了 public class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.Mo`viesHolder> { Context context; ArrayList<String> mImages; ArrayList<String> mTi
GridLayoutManager
和自定义适配器创建RecyclerView
,但图像没有显示。我被卡住了,不知道怎么了
public class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.Mo`viesHolder> {
Context context;
ArrayList<String> mImages;
ArrayList<String> mTitle ;
ArrayList<String> mReleaseDate;
ArrayList<String> mSynopsis;
ArrayList<Double> mAverageRating;
public MoviesAdapter(Context context, ArrayList<String> mImages, ArrayList<String> mTitle, ArrayList<String> mReleaseDate, ArrayList<String> mSynopsis, ArrayList<Double> mAverageRating) {
this.context = context;
this.mImages = mImages;
this.mTitle = mTitle;
this.mReleaseDate = mReleaseDate;
this.mSynopsis = mSynopsis;
this.mAverageRating = mAverageRating;
}
@NonNull
@Override
public MoviesHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater myInflater = LayoutInflater.from(context);
View movieView = myInflater.inflate(R.layout.movies_layout,parent,false);
return new MoviesHolder(movieView);
}
@Override
public void onBindViewHolder(@NonNull MoviesHolder holder, final int position) {
Glide.with(context)
.asBitmap()
.load(mImages.get(position))
.into(holder.movieImage);
holder.parentLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),MovieDetailsActivity.class);
intent.putExtra("movie_poster",mImages);
intent.putExtra("movie_title",mTitle);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mImages.size();
}
public class MoviesHolder extends RecyclerView.ViewHolder {
ImageView movieImage;
RelativeLayout parentLayout;
String movieTitle;
String movieReleaseDate;
String movieSynopsis;
double movieAverageRating;
public MoviesHolder(@NonNull View itemView) {
super(itemView);
movieImage = itemView.findViewById(R.id.movie_img);
parentLayout = itemView.findViewById(R.id.parent_layout);
}
}
}
公共类MoviesAdapter扩展了RecyclerView.Adapter{
语境;
阵列列表模拟图像;
ArrayList mTitle;
ArrayList mReleaseDate;
ArrayList mSynopsis;
ArrayList mAverageRating;
公共电影适配器(上下文上下文、ArrayList mImages、ArrayList mTitle、ArrayList mReleaseDate、ArrayList mSynopsis、ArrayList mAverageRating){
this.context=上下文;
this.mImages=mImages;
this.mTitle=mTitle;
this.mReleaseDate=mReleaseDate;
this.mSynopsis=mSynopsis;
this.mAverageRating=mAverageRating;
}
@非空
@凌驾
public MoviesHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
LayoutInflater myInflater=LayoutInflater.from(上下文);
View movieView=myInflater.inflate(R.layout.movies\u layout,parent,false);
归还新的电影持有人(电影视图);
}
@凌驾
BindViewHolder上的公共无效(@NonNull MoviesHolder,最终整数位置){
带(上下文)滑动
.asBitmap()
.加载(图像获取(位置))
.进入(电影图像持有者);
holder.parentLayout.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent=newintent(v.getContext(),MovieDetailsActivity.class);
intent.putExtra(“电影海报”,影象);
intent.putExtra(“电影名称”,mTitle);
背景。开始触觉(意图);
}
});
}
@凌驾
public int getItemCount(){
返回mImages.size();
}
公共类MoviesHolder扩展了RecyclerView.ViewHolder{
ImageView电影图像;
相对亲子布局;
弦乐电影;
字符串movieReleaseDate;
弦动综合征;
双电影平均;
公共MoviesHolder(@NonNull View itemView){
超级(项目视图);
movieImage=itemView.findviewbyd(R.id.movie\u img);
parentLayout=itemView.findviewbyd(R.id.parent\u布局);
}
}
}
这是我的主要活动
public class MainActivity extends AppCompatActivity {
RecyclerView moviesRecycler;
private ArrayList<String> mMoviePoster = new ArrayList<>();
private ArrayList<String> mMovieTitle = new ArrayList<>();
private ArrayList<String> mMovieReleaseDate = new ArrayList<>();
private ArrayList<String> mMovieSynopsis = new ArrayList<>();
private ArrayList<Double> mMovieAverageRating = new ArrayList<>();
MoviesAdapter myMoviesAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initMovieDetails();
moviesRecycler = findViewById(R.id.moviesRecycler);
myMoviesAdapter = new MoviesAdapter(this,mMoviePoster,mMovieTitle,mMovieReleaseDate,mMovieSynopsis,mMovieAverageRating);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,2);
moviesRecycler.setAdapter(myMoviesAdapter);
moviesRecycler.setLayoutManager(gridLayoutManager);
}
private void initMovieDetails() {
mMoviePoster.add("https://unsplash.com/photos/NhUJuPUeRvc");
mMovieTitle.add("Parasite");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(8.6);
mMovieSynopsis.add("A poor family, the Kims, con their way into becoming the servants of a rich family, the Parks. But their easy life gets complicated when their deception is threatened with exposure.\n");
mMoviePoster.add("https://www.imdb.com/title/tt8946378/mediaviewer/rm2569376769");
mMovieTitle.add("Knives Out");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(8.0);
mMovieSynopsis.add("A detective investigates the death of a patriarch of an eccentric, combative family.\n");
mMoviePoster.add("https://www.imdb.com/title/tt1051906/mediaviewer/rm1847823873");
mMovieTitle.add("The Invisible Man");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(7.6);
mMovieSynopsis.add("When Cecilia's abusive ex takes his own life and leaves her his fortune, she suspects his death was a hoax. As a series of coincidences turn lethal, Cecilia works to prove that she is being hunted by someone nobody can see.\n");
mMoviePoster.add("https://www.imdb.com/title/tt7286456/mediaviewer/rm3353122305");
mMovieTitle.add("Joker");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(8.6);
mMovieSynopsis.add("In Gotham City, mentally troubled comedian Arthur Fleck is disregarded and mistreated by society. He then embarks on a downward spiral of revolution and bloody crime. This path brings him face-to-face with his alter-ego: the Joker.\n");
mMoviePoster.add("https://www.imdb.com/title/tt2584384/mediaviewer/rm3972044545");
mMovieTitle.add("JoJo Rabbit");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(8.0);
mMovieSynopsis.add("A young boy in Hitler's army finds out his mother is hiding a Jewish girl in their home.\n");
mMoviePoster.add("https://www.imdb.com/title/tt8579674/mediaviewer/rm144738817");
mMovieTitle.add("1917");
mMovieReleaseDate.add("2019");
mMovieAverageRating.add(8.4);
mMovieSynopsis.add("April 6th, 1917. As a regiment assembles to wage war deep in enemy territory, two soldiers are assigned to race against time and deliver a message that will stop 1,600 men from walking straight into a deadly trap.\n");
}
}
public类MainActivity扩展了AppCompatActivity{
电影回收商;
private ArrayList mMoviePoster=new ArrayList();
private ArrayList mMovieTitle=new ArrayList();
私有ArrayList mMovieReleaseDate=新ArrayList();
private ArrayList mmoviesympsis=new ArrayList();
private ArrayList mMovieAverageRating=new ArrayList();
MoviesAdapter我的MoviesAdapter;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initMovieDetails();
moviesRecycler=findViewById(R.id.moviesRecycler);
myMoviesAdapter=新的MoviesAdapter(此、mMoviePoster、mMovieTitle、mMovieReleaseDate、mmovieSymposis、mMovieAverageRating);
GridLayoutManager GridLayoutManager=新的GridLayoutManager(这个,2);
setAdapter(myMoviesAdapter);
setLayoutManager(gridLayoutManager);
}
私有电影详细信息(){
添加(“https://unsplash.com/photos/NhUJuPUeRvc");
名称。添加(“寄生虫”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(8.6);
mmoviesynosis.add(“一个贫穷的家庭,金家,通过欺骗成为一个富裕家庭的仆人,帕克斯。但是当他们的欺骗行为受到曝光的威胁时,他们的安逸生活变得复杂了。\n”);
添加(“https://www.imdb.com/title/tt8946378/mediaviewer/rm2569376769");
标题。添加(“切出”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(8.0);
mmoviesynosis.add(“一名侦探调查一个古怪好斗家庭的一位族长之死。\n”);
添加(“https://www.imdb.com/title/tt1051906/mediaviewer/rm1847823873");
添加(“隐形人”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(7.6);
mmoviesynosis.add(“当塞西莉亚的虐待前男友夺走了自己的生命,留给她自己的财产时,她怀疑他的死亡是一场骗局。随着一系列巧合变成致命事件,塞西莉亚努力证明她正在被一个谁也看不见的人追捕。\n”);
添加(“https://www.imdb.com/title/tt7286456/mediaviewer/rm3353122305");
添加(“小丑”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(8.6);
MMOVIESYMBOL.add(“在高谭市,有精神问题的喜剧演员亚瑟·弗莱克受到社会的漠视和虐待。然后,他开始了革命和血腥犯罪的恶性循环。这条道路让他与另一个自我:小丑面对面。\n”);
添加(“https://www.imdb.com/title/tt2584384/mediaviewer/rm3972044545");
添加(“JoJo兔”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(8.0);
mmoviesynosis.add(“希特勒军队中的一个小男孩发现他的母亲将一个犹太女孩藏在家中。\n”);
添加(“https://www.imdb.com/title/tt8579674/mediaviewer/rm144738817");
标题。添加(“1917”);
mMovieReleaseDate.添加(“2019”);
mMovieAverageRating.add(8.4);
MMOVIESYMBOL.add(“1917年4月6日,当一个团集结在敌方领土深处发动战争时,两名士兵被指派与时间赛跑,并传递一条信息,阻止1600人直接进入致命陷阱。\n”);
}
}
我认为您分配给Glide的URL有问题。这些李