2016-04-08 31 views
-1

Resim ile tek bir ızgara RecyclerView var, şimdi kullanıcı geri dönüştürücü View, RecyclerView resim göstergesini DetailActivity içinde tıklattığında istiyorum. Geri Bildirim Ver Daha fazla bilgi Görüntüleyici geri bildirim görüntüleniyor Diğer etkinlik için

Bu

benim RecyclerAdapter geçerli:

public class AdapterRecyclerDars extends RecyclerView.Adapter<AdapterRecyclerDars.ViewHolder> { 
    private ArrayList<Modelars> arsha; 
    private Context context; 

    //========================================== constructor 

    public AdapterRecyclerDars(ArrayList<Modelars> arsha, Context context) { 
     this.arsha = arsha; 
     this.context = context; 
    } 

    //========================================== ViewHolder 
    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
     private TextView txt_grid; 
     private ImageView img_grid; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      itemView.setOnClickListener(this); 
      txt_grid = (TextView)itemView.findViewById(R.id.txt_grid); 
      img_grid = (ImageView)itemView.findViewById(R.id.img_grid); 
     } 

     @Override 
     public void onClick(View v) { 

      Intent intent = new Intent(v.getContext(), DetailActivity.class); 
      intent.putExtra("img_id",img_grid.getId()); <== I don't know this 
      v.getContext().startActivity(intent); 
     } 
    } 
    //========================================== onCreateViewHolder 

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

    //========================================== onBindViewHolder 

    @Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
     //setText 
     holder.txt_grid.setText(arsha.get(position).getars_name()); 
     //download image 
     Glide.with(context).load(arsha.get(position).getars_img()).into(holder.img_grid); 
    } 

    //========================================== getItemcount 

    @Override 
    public int getItemCount() { 
     return darsha.size(); 
    } 

    //========================================== 
    //========================================== 
} 

Ve Bu benim Fragment nerede RecyclerView Yükü:

public class Fragment_one extends Fragment { 
    ArrayList<Modelars> arsha; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_one, container, false); 
     RecyclerView recyclerAvalDab = (RecyclerView) view.findViewById(R.id.recycler_frg_aval_dab); 
     // recyclerAvalDab.setHasFixedSize(true); 
     initializeData(); 
     RecyclerView.LayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 3); 
     recyclerAvalDab.setLayoutManager(gridLayoutManager); 



     AdapterRecyclerDars adapterRecyclerDars = new AdapterRecyclerDars(darsha, getActivity()); 
     recyclerAvalDab.setAdapter(adapterRecyclerDars); 
     return view; 
    } 

    private void initializeData() { 
     arsha = new ArrayList<>(); 
     arsha.add(new Modelars("1", R.drawable.z)); 
     arsha.add(new Modelars("2", R.drawable.s)); 
     arsha.add(new Modelars("3", R.drawable.r)); 
     arsha.add(new Modelars("4", R.drawable.f)); 
     arsha.add(new Modelars("5", R.drawable.a)); 
     arsha.add(new Modelars("6", R.drawable.ad)); 
     arsha.add(new Modelars("7", R.drawable.d)); 
     arsha.add(new Modelars("8", R.drawable.z)); 
    } 
} 
+0

, nasılsın? – Piyush

+0

hi Piyush kullanan tek pozisyon geçmesi gerekiyor –

+0

Peki ben iyiyim ... – Piyush

cevap

0

bu deneyin bence iş:

Sadece RecyclerAdapter yılında senin ViewHolder için bu satırı ekleyin:

public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 
     private TextView txt_grid; 
     private ImageView img_grid; 

     public ViewHolder(View itemView) { 
      super(itemView); 
      itemView.setOnClickListener(this); 
      txt_grid = (TextView)itemView.findViewById(R.id.txt_grid); 
      img_grid = (ImageView)itemView.findViewById(R.id.img_grid); 
     } 

     @Override 
     public void onClick(View v) { 

      Intent intent=new Intent(v.getContext(),DetailActivity.class); 
      Bundle bundle=new Bundle(); 
      bundle.putInt("IMAGE", arsha.get(getAdapterPosition()).getars_img()); 
      intent.putExtras(bundle); 
      v.getContext().startActivity(intent); 
     } 
    } 

Ve DetailActivity yılında Bu kodu onCreate yöntemiyle yazın:

int img_id; 

    if (bundle != null){ 
      img_id = bundle.getInt("IMAGE"); 
      imageview.setImageResource(img_id); 
     } 

öyle O: D

Sen dizi [pozisyonunu]
+0

Evet! Iş, teşekkürler arkadaşım <3 –

0

ait

yerine Diğer Etkinlik için rehabilitasyon makinesi görünümünden Görüntü Gönderme Bir sonraki Etkinlikte resim elde etmek için img_grid.getId() kullanarak .

@Override 
    public void onBindViewHolder(ViewHolder holder, int position) { 
    ....your code here 
    //download image 
    int drawableID=arsha.get(position).getars_img(); 
    holder.img_grid.setTag(String.valueOf(drawableID)); 
    Glide.with(context).load(drawableID).into(holder.img_grid); 
    } 

Şimdi sonraki Etkinlik drawableID geçmesi: onBindViewHolder yöntemi olarak değişiklik gibi, her bir hücre ile depo resim verisi id img_grid ImageView e setTag yöntemi

intent.putExtra("drawableID",Integer.parseInt(img_grid.getTag().toString())); 

v.getContext() startActivity (niyet);

DetailActivity Bir Etkinlikte gösteri görüntü olarak:

int drawableID = bundle.getInt("drawableID")); 
imageView.setImageResource(drawableID); 
+0

Bu java.lang.IllegalArgumentException diyorsun: Bir görünümde setTag() çağırmamalısın Glide –

+0

@kianarahimi hedefliyor : Hangi satırda sorun olur? –

İlgili konular