Java 带有ImageView和不同活动的RecyclerView

Java 带有ImageView和不同活动的RecyclerView,java,android,xml,android-studio,android-recyclerview,Java,Android,Xml,Android Studio,Android Recyclerview,我拥有的:一个回收站,里面有酒吧、咖啡店等地方的照片 我想要的是:当你点击其中一张图片时,我会向你显示所选地点的信息 我的问题:例如,如何为第三张图片设置OnCLickListener 很多人告诉我用我的“onBindViewHolder()”方法来实现它,但它不允许我实现“startActivity”,所以我可以转到“意图””请,如果你能用代码解释一下,那就太好了,我还不擅长编程,所以我非常感谢 我的适配器 public class AdapterDatos extends RecyclerV

我拥有的:一个回收站,里面有酒吧、咖啡店等地方的照片

我想要的是:当你点击其中一张图片时,我会向你显示所选地点的信息

我的问题:例如,如何为第三张图片设置
OnCLickListener

很多人告诉我用我的“
onBindViewHolder()
”方法来实现它,但它不允许我实现“
startActivity
”,所以我可以转到“
意图”
”请,如果你能用代码解释一下,那就太好了,我还不擅长编程,所以我非常感谢

我的适配器

public class AdapterDatos extends RecyclerView.Adapter<AdapterDatos.ViewHolder> implements View.OnClickListener {

ArrayList<ClaseNueva> listalugares;
private View.OnClickListener listener;

public AdapterDatos(ArrayList<ClaseNueva> listaLugares) {
    listalugares = listaLugares;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//esto es lo que hacereferencia al xml donde vamos a meter la info
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,null,false);//aqui le asignamos el valor del view al viewHolder
    view.setOnClickListener(this);
    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {// este metodo es el que se encarga de establecer la conexion entre el adaptador y la clase Viewholder ( a la cual le asignamos el xml)
    holder.etiLugares.setText(listalugares.get(position).getLugares());// asi se asignan los textos
    holder.Foto.setImageResource(listalugares.get(position).getFoto());//asi se asignan las fotos


}

@Override
public int getItemCount() {//este metodo va a decir el tamaño del viewHolder, en este caso de tamaño del array listalugares
    return listalugares.size();//se hace asi
}

public void setOnClickListener(View.OnClickListener listener){
    this.listener = listener;
}


@Override
public void onClick(View view) {


    if(listener!= null){
        listener.onClick(view);
   }
}

我的Java类

 public class foodAndGo extends Activity {

ArrayList<ClaseNueva> listalugares;
RecyclerView recyclerLugares;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_food_and_go);

    listalugares = new ArrayList<>();
    recyclerLugares = (RecyclerView) findViewById(R.id.RecyclerID);
    recyclerLugares.setLayoutManager(new LinearLayoutManager(this));


    llenarNombres();

    AdapterDatos adapter = new AdapterDatos(listalugares);
    adapter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(),"Seleccion"+listalugares.get(recyclerLugares.getChildAdapterPosition(v)).getLugares(),Toast.LENGTH_SHORT).show();
            Intent myIntent = new Intent(foodAndGo.this, MapsActivity.class);
            startActivity(myIntent);
        }
    });
  recyclerLugares.setAdapter(adapter);

}



private void llenarNombres() {
    listalugares.add(new ClaseNueva("Restaurantes", R.drawable.carnemejor));
    listalugares.add(new ClaseNueva("Bares", R.drawable.beers));
    listalugares.add(new ClaseNueva("Cafeterías",R.drawable.desayunosmejor));
    listalugares.add(new ClaseNueva("Pizzerias",R.drawable.pizzaamejor));
    listalugares.add(new ClaseNueva("Favoritos",R.drawable.favoritosmejo));


}
公共类foodAndGo扩展活动{
ArrayList listalugares;
RecyclerView recyclerLugares;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、活动、食物和围棋);
listalugares=newarraylist();
recyclerLugares=(RecyclerView)findViewById(R.id.RecyclerID);
recyclerLugares.setLayoutManager(新的LinearLayoutManager(本));
llenarNombres();
AdapterDatos adapter=新AdapterDatos(listalugares);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Toast.makeText(getApplicationContext(),“Seleccion”+listalugares.get(recyclerLugares.getChildAdapterPosition(v)).getLugares(),Toast.LENGTH_SHORT.show();
Intent myIntent=新的Intent(foodAndGo.this、MapsActivity.class);
星触觉(myIntent);
}
});
回收器集控器适配器(适配器);
}
私有无效llenarNombres(){
添加(新ClaseNueva(“Restaurants”,R.drawable.carnemejor));
添加(新ClaseNueva(“Bares”,R.drawable.beers));
添加(新的ClaseNueva(“Cafeterías”,R.drawable.Desayunosmeyjor));
添加(新的ClaseNueva(“比萨店”,R.drawable.pizzaamejor));
添加(新的ClaseNueva(“Favoritos”,R.drawable.favoritosmejo));
}

}

内部
食物和围棋
活动变化

AdapterDatos adapter=新的AdapterDatos(listalugares)
to
adapterdataos adapter=newadapterdataos(listalugares,foodAndGo.this)

在适配器类中添加以下内容

private Context context;
public AdapterDatos(ArrayList<ClaseNueva> listaLugares,Context context) {
this.context=context;
listalugares = listaLugares;
}

天啊!!!它真的起作用了!!!非常感谢你,我是这个网站的新手,告诉我我能做些什么来奖励你,我真的很感谢你花时间回答我的问题。再次感谢您,我将等待您关于如何在网站上奖励您的回答:)
private Context context;
public AdapterDatos(ArrayList<ClaseNueva> listaLugares,Context context) {
this.context=context;
listalugares = listaLugares;
}
Intent myIntent = new Intent(context, MapsActivity.class);
context.startActivity(myIntent);