2017-07-15 33 views
0

我正在從我的服務器加載圖像到回收站視圖。現在點擊回收站視圖我只發送點擊圖像的鏈接,但我想通過整個圖像數組onClick到視圖分頁器以便並排顯示圖像。所以,任何人都可以幫助我做到這一點。我如何發送一個圖像陣列onClick在RecyclerView到ViewPager

我RecyclerView的適配器代碼:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { 
private List<ListItem> listItems; 
private Context context; 

@Override 
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()) 
          .inflate(R.layout.list_item,parent,false); 
    return new ViewHolder(v); 
} 

public MyAdapter(List<ListItem> listItems, Context context) { 
    this.listItems = listItems; 
    this.context = context; 
} 

@Override 
public void onBindViewHolder(final MyAdapter.ViewHolder holder, int position) { 
    final ListItem listItem=listItems.get(position); 
    Glide.with(context).load(listItem.getImageUrl()).centerCrop().into(holder.iv); 
    holder.ln.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        String s=listItem.getImageUrl(); 
        Intent i=new Intent(context,ImageShow.class); 
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        i.putExtra("Image",s); 
        context.startActivity(i); 
       } 
      } 
    ); 
} 

@Override 
public int getItemCount() { 
    return listItems.size(); 
} 
public class ViewHolder extends RecyclerView.ViewHolder{ 
    public ImageView iv;LinearLayout ln; 

    public ViewHolder(View itemView) { 
     super(itemView); 
     iv=(ImageView)itemView.findViewById(R.id.imageView); 
     ln=(LinearLayout)itemView.findViewById(R.id.linLay); 
    } 
} } 
在我看來,尋呼機類

現在,現在它的顯示圖像從繪製數組:

public class CustomAdapter extends PagerAdapter { 
    private int[] images = {R.drawable.c,R.drawable.d,R.drawable.e}; 
    private Context ctx; 
    private LayoutInflater inflater; 

    public CustomAdapter(Context ctx){ 
     this.ctx = ctx; 
    } 

    @Override 
    public int getCount() { 
     return images.length; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) { 
     return (view ==(RelativeLayout)object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View v = inflater.inflate(R.layout.swipe,container,false); 
     ImageView img =(ImageView)v.findViewById(R.id.imageView); 
     img.setImageResource(images[position]); 
     container.addView(v); 
     return v; 
    } 

    @Override 
    public void destroyItem(View container, int position, Object object) { 
     container.refreshDrawableState(); 
    } 
} 

回答

0

這是不完全清楚什麼是你的麻煩,但如果你不知道如何通過Intent傳遞字符串數組,這裏是你正在尋找的方法Intent.putExtra(String name, String[] value。以下是convert a list to an array的操作方法。

我個人會主張禁止這樣的數據流,你的RecyclerView.Adapter應該告訴Fragment/Activity哪個項被選中,並且它的父組件負責將它們擁有的數據傳遞給PagerAdapter。它被稱爲unidirectional data flow

相關問題