2017-03-09 63 views
0

當我點擊ImageView時,它會轉到帶有位置的GridView活動。當我點擊cardview內的其他區域時,它會轉到ItemDetailActivtiy的位置。點擊時如何做一行或少於編碼。如何處理ImageView在RecyclerView中的行內點擊?

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

嘗試使用[ButterKnife](http://jakewharton.github.io/butterknife/)。它會減少樣板代碼 – shmakova

+0

你是否有任何錯誤? – Champandorid

+0

@Champandorid沒有錯誤,我想使用較少的編碼 – WPG

回答

0

你可以做到一條線!

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

儘管您需要以其他方式檢索值,而不是捆綁附加。

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