简体   繁体   中英

How to get text from editText that is on the recycle view adapter at some position

I have an edit text at 5th position on recyclerview adapter. I need to get text from that edittext on a click of button (button is on the fragment of adapter and I need that text on that fragment

Create interface in your adapter.

public interface ClickListener {
    void onItemClick(int position, View v);
}

You can implement method of interface in Recycler View Holder class of your adapter to get the text of card view as per your requirement.

@Override
    public void onClick(View v) {
        clickListener.onItemClick(getAdapterPosition(),v);
        imageView_icon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickListener.onItemClick(getAdapterPosition(), v);
            }
        });
}

Now, create a global static object of class ClickListner and pass it in click listner method on card clicked. Now get edittext text from particular card view on its click.

 //Create global reference
 private static ClickListener clickListener;

create method to detect the click in recycler view from fragment.

 public void setOnItemClickListner(ClickListener clickListner) {
    MainAdapter.clickListener = clickListner;
}

Now you can get the text from edit text from from bind view holder

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

    final MainModel mainModel = modelList.get(position);

    holder.cardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            clickListener.onItemClick(holder.getAdapterPosition(), v);
            editText.getText().toString();
        }
    });
}

It will work for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM