2017-09-16 89 views
-4

我有recyclerview with an 30 images and on click of particular image i am opening a new activity which shows a different image.I have uploaded my images to a server and accessing the image from there. When my activity is opened on click of recyclerview`我通過意圖通過位置,以便我可以知道哪個圖像被點擊,然後我在我的活動中使用開關案件,並加載任何圖像我想。我有寫30個開關的例子,因爲我有30個圖像。是否有其他選擇。我不想使用if和else if。替代開關案例在android

public class ModelLineUpAdapter extends RecyclerView.Adapter<ModelLineUpAdapter.MyViewHolder> { 

    private Context context; 

    private List<Bikers> bikersList; 

    public ModelLineUpAdapter(List<Bikers> bikersList,Context context) { 
     this.bikersList=bikersList; 
     this.context = context; 
    } 

    public static class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { 
     public ImageView bikesImageView; 
     public TextView nameTextView, priceTextView; 
     private Button brocheurebutton; 
     private final Context context; 

     public MyViewHolder(View itemView) { 
      super(itemView); 
      context = itemView.getContext(); 
      bikesImageView = itemView.findViewById(R.id.bikelistitemImageview); 
      nameTextView = itemView.findViewById(R.id.bikelistitemname); 
      priceTextView = itemView.findViewById(R.id.bikelistitemprice); 
      brocheurebutton = itemView.findViewById(R.id.bikelistitembutton); 
      itemView.setOnClickListener(this); 
     } 

     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(context, ModelLineUpInnerActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      intent.putExtra("position",getAdapterPosition()); 
      context.startActivity(intent); 
     } 
    } 

    @Override 
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(context).inflate(R.layout.bikelistitem, null); 

     return new MyViewHolder(view); 
    } 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 

     Bikers bikers = bikersList.get(position); 
     holder.nameTextView.setText(bikers.getBikename()); 
     holder.priceTextView.setText(bikers.getBikeprice()); 

     Glide.with(context).load(bikers.getBikeImageUrl()).into(holder.bikesImageView); 

    } 


    @Override 
    public int getItemCount() { 
     //Log.i(TAG, "getItemCount: "+bikersList.size()); 
     return bikersList == null ? 0 : bikersList.size(); 
    } 

} 
+1

向我們展示你的代碼收到並解釋其無法指標陣列/數據庫的圖像來完成。 –

+1

@MorrisonChang我的回收查看權限中有30張圖片,所以我通過了被點擊的項目的位置。所以我需要寫30個開關盒還是有更好的方法? –

+1

執行點擊監聽器到您的recyclerview –

回答

0

只是通過圖像的URL與意圖,並在您ModelLineUpInnerActivity

@Override 
     public void onClick(View v) { 
      Intent intent = new Intent(context, ModelLineUpInnerActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      intent.putExtra("position",getAdapterPosition()); 
      intent.putExtra("IMG",bikersList.get(getAdapterPosition()).getBikeImageUrl()); 
      context.startActivity(intent); 
     }