2017-01-18 24 views
0

我從列表中使用RecyclerView從我的服務器中獲取了圖像。當我點擊RecyclerView中的其中一個項目時,我希望該項目中的圖像打開一個新的活動。我怎樣才能得到那個圖像?提前致謝。On item點擊Reteler of Listener查看顯示圖像

RecyclerViewAdapter.java

public RecyclerViewAdapter(List<GetDataAdapter> getDataAdapter, Context context) { 

     super(); 
     this.getDataAdapter = getDataAdapter; 
     this.context = context; 
    } 

    @Override 
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 

     View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items, parent, false); 

     ViewHolder viewHolder = new ViewHolder(v,context,getDataAdapter); 

     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(ViewHolder Viewholder, int position) { 

     GetDataAdapter getDataAdapter1 = getDataAdapter.get(position); 

     imageLoader1 = ServerImageParseAdapter.getInstance(context).getImageLoader(); 

     imageLoader1.get(getDataAdapter1.getImageServerUrl(), 
       ImageLoader.getImageListener(
         Viewholder.networkImageView,//Server Image 
         R.mipmap.ic_launcher,//Before loading server image the default showing image. 
         android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server. 
       ) 
     ); 


     Viewholder.networkImageView.setImageUrl(getDataAdapter1.getImageServerUrl(), imageLoader1); 
     Viewholder.ImageTitleNameView.setText(getDataAdapter1.getImageTitleName()); 

    } 

    @Override 
    public int getItemCount() { 

     return getDataAdapter.size(); 
    } 

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

     public TextView ImageTitleNameView; 
    public NetworkImageView networkImageView; 

    List<GetDataAdapter> getDataAdapter ;//= new List<GetDataAdapter>(); 
     Context context; 

     public ViewHolder(View itemView,Context context,List<GetDataAdapter> getDataAdapter) { 

      super(itemView); 
      this.getDataAdapter=getDataAdapter; 
      this.context=context; 
      itemView.setOnClickListener(this); 

      ImageTitleNameView = (TextView) itemView.findViewById(R.id.textView_item); 

      // networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1); 
      networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1); 

     } 
@Override 
     public void onClick(View v) { 
      int position = getAdapterPosition(); 
      GetDataAdapter getDataAdapters=this.getDataAdapter.get(position); 
      Intent intent=new Intent(this.context,SecondPage.class); 
      intent.putExtra("image_title",getDataAdapters.getImageTitleName()); 
      intent.putExtra("image_url",getDataAdapters.getImageServerUrl()); 
      this.context.startActivity(intent); 

     } 
    } 
} 

SecondPage.java

imageView=(ImageView)findViewById(R.id.imge); 

    Intent i = getIntent(); 

     int resid =i.getIntExtra("image_url", 0); 

    imageView.setImageResource(Integer.parseInt("image_url"+getIntent().getStringExtra("image_url"))); 

    imageView.setImageResource(resid); 
+0

爲了給你一個很好的答案,它可以幫助我們,如果你有一個問題,如果你還沒有看過。如果你可以提供[mcve],它可能也很有用。 – Mat

回答

1

如果您的圖像被存儲在一個ArrayList,通過經由意圖RecyclerView元件的位置,並設置src您的SecondPage.java中的ImageView爲:

OnClick

myIntent.putExtra("imageIndex", position); 

SecondPage.java

imageView=(ImageView)findViewById(R.id.imge); 

Intent i = getIntent(); 

int imgIndex = i.getIntExtra("imageIndex", 0); 

imageView.setImageResource(ArrayList.get(imgIndex)); 

在情況下,您是通過使用意圖畢加索傳遞一個的ImageUrl到diaplay圖像中的ImageView爲:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

確保將Picasso庫添加到您的項目gradle中:

compile 'com.squareup.picasso:picasso:2.5.2' 
+0

謝謝你,suhayl,但它不適用於我,任何其他建議。 – Jincy

+0

你得到的錯誤是什麼?你也可以將GetDataAdapter類粘貼到你的問題中嗎? –

+0

public class GetDataAdapter { public String ImageServerUrl; public String ImageTitleName; public String getImageServerUrl(){ return ImageServerUrl; } public void setImageServerUrl(String imageServerUrl){ this.ImageServerUrl = imageServerUrl; } public String getImageTitleName(){ return ImageTitleName; } public void setImageTitleNamee(String Imagetitlename){ this.ImageTitleName = Imagetitlename; } } – Jincy