CategoriesListScreen.java
public class CategoriesListScreen extends AppCompatActivity
{
private static final String TAG = "CategoriesListScreen";
//vars
private ArrayList<String> mNames = new ArrayList<>();
private ArrayList<String> mImageUrls = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getImages();
}
private void getImages(){
Log.d(TAG, "initImageBitmaps: preparing bitmaps.");
mImageUrls.add("https://c1.staticflickr.com/5/4636/25316407448_de5fbf183d_o.jpg");
mNames.add("Havasu Falls");
mImageUrls.add("https://i.redd.it/tpsnoz5bzo501.jpg");
mNames.add("Trondheim");
mImageUrls.add("https://i.redd.it/qn7f9oqu7o501.jpg");
mNames.add("Portugal");
mImageUrls.add("https://i.redd.it/j6myfqglup501.jpg");
mNames.add("Rocky Mountain National Park");
mImageUrls.add("https://i.redd.it/0h2gm1ix6p501.jpg");
mNames.add("Mahahual");
mImageUrls.add("https://i.redd.it/k98uzl68eh501.jpg");
mNames.add("Frozen Lake");
mImageUrls.add("https://i.redd.it/glin0nwndo501.jpg");
mNames.add("White Sands Desert");
mImageUrls.add("https://i.redd.it/obx4zydshg601.jpg");
mNames.add("Austrailia");
mImageUrls.add("https://i.imgur.com/ZcLLrkY.jpg");
mNames.add("Washington");
initRecyclerView();
}
private void initRecyclerView(){
Log.d(TAG, "initRecyclerView: init recyclerview");
LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(layoutManager);
MyAdapter adapter = new MyAdapter(this, mNames, mImageUrls);
recyclerView.setAdapter(adapter);
}
У меня есть адаптер для RecyclerView:
MyAdapter.java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>
{
private ArrayList<String> mNames = new ArrayList<>();
private ArrayList<String> mImageUrl = new ArrayList<>();
private Context mContext;
public MyAdapter(Context mContext, ArrayList<String> names, ArrayList<String> mImageUrl) {
this.mNames = names;
this.mImageUrl = mImageUrl;
this.mContext = mContext;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_listitem,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position)
{
//as the user clicks on different images activity correspond to that image should start.
Glide.with(mContext)
.asBitmap()
.load(mImageUrl.get(position))
.into(holder.); //i am confused what to write here..
holder.onBind(position);
}
@Override
public int getItemCount() {
return mImageUrl.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public MyViewHolder(View itemView)
{
super(itemView);
CircleImageView image;
TextView textView;
image = (CircleImageView) itemView.findViewById(R.id.image_view);
textView = (TextView) itemView.findViewById(R.id.name);
image.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(getAdapterPosition()){
case 0:
// start activity 0
Intent intent = new Intent(mContext, MainActivity.class);
mContext.startActivity(intent);
break;
case 1:
// start activity 1
Intent intent2 = new Intent(mContext, CarsActivity.class);
mContext.startActivity(intent2);
break;
}
}
}
}
Я хочу настроить горизонтальный просмотр рециркулятора, и мне нужно начать новое задание Intent, соответствующее изображению. Например, если пользователь нажимает на первое изображение, его следует перенаправить на first.class, если пользователь нажимает на второе изображение, его следует перенаправить на second.class и т. Д.
Я очень смущен. Я не могу понять, что писать внутри onBindViewHolder. Любая помощь будет оценена! :)
layout_listitem.xml
<android.support.v7.widget.CardView
android:layout_width="120dp"
android:layout_height="120dp"
app:cardCornerRadius="4dp"
app:cardMaxElevation="2dp"
app:cardElevation="1dp"
android:layout_centerInParent="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="90dp"
android:layout_height="90dp"
android:scaleType="centerCrop"
android:layout_centerHorizontal="true"
android:id="@+id/image_view"
android:src="@drawable/ic_launcher_background"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text="Canada"
android:layout_below="@+id/image_view"
android:id="@+id/name"
android:layout_centerHorizontal="true"
android:gravity="center"
android:layout_marginTop="5dp"
android:textColor="#000"
android:layout_marginBottom="5dp"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="8sp"
android:autoSizeMaxTextSize="15sp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>