2017-03-09 5 views
0

Wenn ich auf ImageView klicke, wird die GridView-Aktivität mit der Position angezeigt. Wenn ich auf einen anderen Bereich innerhalb einer Kartenansicht klicke, gehe ich zu ItemDetailActivtiy mit Position. Wie man beim Klicken eine Zeile oder weniger als die Codierung ausführt.Wie behandelt ImageView in RecyclerView in einer Zeile?

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 

     TextView tv_restaurant_name, tv_restaurant_address, tv_restaurant_phone; 
     ImageView imgview; 

    public ViewHolder(View itemView) { 
     super(itemView); 
     tv_restaurant_name = (TextView) itemView.findViewById(R.id.tv_restaurant_name); 
     tv_restaurant_address = (TextView) itemView.findViewById(R.id.tv_restaurant_address); 
     tv_restaurant_phone = (TextView) itemView.findViewById(R.id.tv_restaurant_phone); 
     imgview = (ImageView) itemView.findViewById(R.id.imgview); 
     tv_restaurant_name.setOnClickListener(this); 
     tv_restaurant_address.setOnClickListener(this); 
     tv_restaurant_phone.setOnClickListener(this); 
     imgview.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     int position = getAdapterPosition(); 
     if (v.getId() == imgview.getId()) { 
      Intent intent = new Intent(context, GridView.class); 
      Bundle bundle = new Bundle(); 
      bundle.putInt("ID", Integer.valueOf(mRestaurantList.get(position).getRestaurantId())); 
      intent.putExtras(bundle); 
      context.startActivity(intent); 
     } else { 
      context.startActivity(new Intent(context, ItemDetailActivtiy.class)); 
     } 
    } 
} 
+0

Versuchen zu verwenden [butter] (http://jakewharton.github.io/butterknife/). Es wird Boilerplate Code – shmakova

+0

reduzieren, erhalten Sie irgendeinen Fehler? – Champandorid

+0

@Champandorid nichts Fehler, ich möchte weniger Codierung verwenden – WPG

Antwort

0

Sie können es in einer Zeile tun!

context.startActivity(new Intent(context, GridView.class).putExtra("ID",Integer.valueOf(mRestaurantList.get(position).getRestaurantId()))); 

Obwohl Sie den Wert auf andere Weise als Bündel Extra abrufen müssen.

getIntent().getIntExtra("ID",0); 
Verwandte Themen