2017-03-09 5 views
0

ImageViewをクリックすると、GridViewのアクティビティに移動します。私がカードビューの中の他の領域をクリックすると、PositionDetailActivtiyに移動します。クリックすると1行またはそれ以下のコーディング方法。RecyclerViewの行内でImageViewのクリックを処理する方法は?

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

あなたは1行で入力できます。

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

ただし、他の方法で値を取得する必要はありません。

getIntent().getIntExtra("ID",0); 
関連する問題