Menu
Who Do Is
  • Home
  • What
  • How
  • Is
  • Can
  • Are
  • Does
  • Do
  • Why
  • Who
  • Where
  • Which
  • Which
  • Should
  • Will
  • When
  • What’s
  • Did
Who Do Is

[ANSWERED] java – Image not getting attached to recycler view

Posted on November 14, 2022

Solution 1 :

Add layout manager to recyclerView

 <androidx.recyclerview.widget.RecyclerView
            android_id="@+id/gv_attach_image"
            android_layout_width="match_parent"
            android_layout_height="wrap_content"
            android_layout_marginStart="8dp"
            android_layout_marginTop="16dp"
            android_layout_marginEnd="8dp"
            app_layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            android_nestedScrollingEnabled="true"
            android_visibility="gone" />

And connect your adapter to recyclerView

attachImageGV.setAdapter(galleryAdapter)

Problem :

I wrote a image attaching code as shown below:
Recycler view:

<androidx.recyclerview.widget.RecyclerView
                            android_id="@+id/gv_attach_image"
                            android_layout_width="0dp"
                            android_layout_height="wrap_content"
                            android_layout_marginStart="8dp"
                            android_layout_marginTop="16dp"
                            android_layout_marginEnd="8dp"
                            android_nestedScrollingEnabled="true"
                            android_numColumns="3"
                            android_visibility="gone" />  

My Java code:

RecyclerView attachImageGV;
GalleryRecycleViewAdapter galleryAdapter;
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            if (resultCode == RESULT_OK) {
                if (requestCode == PICK_FROM_GALLERY && data != null) {
                    String[] strings = {MediaStore.Images.Media.DATA};
                    imageEncodeList = new ArrayList<>();
                    ArrayList<Uri> uris = new ArrayList<>();
                    attachImageGV.setVisibility(View.VISIBLE);
                    if (data.getData() != null) {
                        Uri uri = data.getData();
                        String selectedFilePath = FilePath.getPath(mContext, uri);
                        imageEncodeList.add(selectedFilePath);
                        // Cursor cursor = mContext.getContentResolver().query(uri, strings, null, null, null);
                        //  cursor.moveToFirst();
                        //  int columnIndex = cursor.getColumnIndex(strings[0]);
                        //  imageEncoded = cursor.getString(columnIndex);
                        //  cursor.close();

                        uris.add(uri);
                        galleryAdapter.addImage(uri);


                    } else {
                        if (data.getClipData() != null) {
                            ClipData clipData = data.getClipData();
                            for (int i = 0; i < clipData.getItemCount(); i++) {
                                ClipData.Item item = clipData.getItemAt(i);
                                Uri uri = item.getUri();
                                String selectedFilePath = FilePath.getPath(mContext, uri);
                                //Cursor cursor = mContext.getContentResolver().query(uri, strings, null, null, null);
                                //  cursor.moveToFirst();
                                //   int columnIndex = cursor.getColumnIndex(strings[0]);
                                //   imageEncoded = cursor.getString(columnIndex);
                                imageEncodeList.add(selectedFilePath);
                                // cursor.close();

                                uris.add(uri);
                                galleryAdapter.addImage(uri);
                            }
                            Log.d("Report issue", "onActivityResult: Number of Selected Images" + imageEncodeList.size());
                        }
                    }
                } else {
                    Toast.makeText(mContext, "You've not attached any image!", Toast.LENGTH_LONG).show();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(TAG, "onActivityResult, error is: ", e);
            Toast.makeText(mContext, "Something went wrong", Toast.LENGTH_SHORT).show();
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

Gallery adapter:

class GalleryRecycleViewAdapter : RecyclerView.Adapter<GalleryRecycleViewAdapter.ViewHolder> {
    var mContext: Context
    var mArrayList = ArrayList<Uri>()
    lateinit var onItemClickListener: OnItemClickListener

    //Below we are limiting the number of items on home screen
    private var limit = 0

    constructor(context: Context, onItemClickListener: OnItemClickListener) {
        this.mContext = context
        this.onItemClickListener = onItemClickListener;

    }

    constructor(context: Context) {
        this.mContext = context
    }


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {

        val binding = DataBindingUtil.inflate<GalleryviewerBinding>(LayoutInflater.from(parent.context),
                R.layout.galleryviewer, parent, false)
        return ViewHolder(binding)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.binding.ivGallery.setImageURI(mArrayList.get(position));

        holder.binding.ivRemoveAttach.setOnClickListener {
            mArrayList.removeAt(position)
            notifyDataSetChanged()

        }
    }

    override fun getItemCount(): Int {
        /*       return if (mArrayList != null) {
                   if (limit > 0) {
                       if (mArrayList.size > limit) {
                           limit
                       } else {
                           mArrayList.size
                       }
                   } else {
                       mArrayList.size
                   }
               } else 0*/
        return mArrayList.size

    }


    fun addImage(uri: Uri) {
        this.mArrayList.add(uri)
        notifyDataSetChanged()
    }

    inner class ViewHolder(internal var binding: GalleryviewerBinding) : RecyclerView.ViewHolder(binding.root)

    companion object {
        private val TAG = "EventsRecyclerViewAdapt"
    }

    fun getMarrayList(): ArrayList<Uri> {
        return mArrayList
    }
}

What am I missing?

READ  [ANSWERED] android - How to enable/disable to notification/indication in RxAndroidBLE
Powered by Inline Related Posts

Comments

Comment posted by stackoverflow.com/questions/32652762/…

I think problem is in imageuri please refer this post

Comment posted by Ajay Kulkarni

I think that

Comment posted by Ajay Kulkarni

I already have these lines in my code:

Comment posted by chand mohd

@AjayKulkarni You have

Recent Posts

  • How can I play with my cat without toys?
  • What is a bag pipe band called?
  • Are Honda Civics actually fast?
  • Are Yankee candles toxic?
  • How do I pair my Michael Kors smartwatch with my Android?

Recent Comments

No comments to show.

Archives

  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022

Categories

  • ¿Cómo
  • ¿Cuál
  • ¿Cuántas
  • ¿Cuánto
  • ¿Que
  • ¿Quién
  • 90” and 108” so you may have to round up to the nearest size.
  • and delete any Spotify folders from it. Once this is done
  • Android
  • Are
  • At
  • Bei
  • blink
  • C'est
  • Can
  • carbs
  • Comment
  • Did
  • Do
  • Does
  • During
  • For
  • Has
  • How
  • In
  • Is
  • Ist
  • Kann
  • Können
  • nouveau
  • On
  • or 108 inches.2020-08-03
  • Où
  • owning
  • Pourquoi
  • Puis-je
  • Quand
  • Quante
  • Quel
  • Quelle
  • Quelles
  • Quels
  • Qui
  • Should
  • Sind
  • Sollte
  • spiritual
  • tap the downward-facing arrow on the top left. A downward-facing arrow will appear underneath each song in the album; they'll turn green as the download completes.2020-07-28
  • Uncategorized
  • Wann
  • Warum
  • Was
  • Welche
  • Welcher
  • Welches
  • Welke
  • Wer
  • Were
  • What
  • What's
  • When
  • Where
  • Which
  • Who
  • Whose
  • Why
  • Wie
  • Will
  • Wo
  • Woher
  • you will receive two curtains each with the same measurements of width 66"" (168cm) x drop 54""(137cm).
  • you'll see a green downward-facing arrow next to each song.2021-02-26
©2023 Who Do Is | Powered by SuperbThemes & WordPress