Tıklanan öğeyi ve RecyclerView'daki konumunu alın


105

Listemi ListViewile değiştiriyorum RecyclerView, liste tamam görünüyor, ancak OnItemClickListener.onItemClick(AdapterView parent, View v, int position, long id)kullandığımız yönteme benzer şekilde tıklanan öğenin ve konumunu nasıl alacağımı bilmek istiyorum ListView.

Fikirler için teşekkürler!




benim için en kolay yol: CustomSelectionCallback
ATES

Yanıtlar:


177

Bağlantıya göre: RecyclerView neden onItemClickListener () içermiyor? ve RecyclerView Listview'den ne kadar farklıdır? ve ayrıca @ Duncan'ın genel fikri, çözümümü burada veriyorum:

  • RecyclerViewClickListenerBağdaştırıcıdan Activity/ 'e mesaj iletmek için bir arabirim tanımlayın Fragment:

    public interface RecyclerViewClickListener {
        public void recyclerViewListClicked(View v, int position);
    }
  • Arabirimi ekleyin Activity/ Fragmentuygulayın ve ayrıca dinleyiciyi adaptöre iletin:

    @Override
    public void recyclerViewListClicked(View v, int position){... ...}
    
    //set up adapter and pass clicked listener this
    myAdapter = new MyRecyclerViewAdapter(context, this);
  • İçinde Adapterve ViewHolder:

    public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ItemViewHolder> {
       ... ... 
       private Context context;
       private static RecyclerViewClickListener itemListener;
    
    
       public MyRecyclerViewAdapter(Context context, RecyclerViewClickListener itemListener) {
           this.context = context;
           this.itemListener = itemListener;
           ... ...
       }
    
    
       //ViewHolder class implement OnClickListener, 
       //set clicklistener to itemView and, 
       //send message back to Activity/Fragment 
       public static class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
           ... ...
           public ItemViewHolder(View convertView) {
               super(convertView);
               ... ...
               convertView.setOnClickListener(this);
           }
    
           @Override
           public void onClick(View v) {
               itemListener.recyclerViewListClicked(v, this.getPosition());     
    
           }
       }
    }

Test ettikten sonra iyi çalışıyor.


[ GÜNCELLEME ]

API 22 RecyclerView.ViewHoler.getPosition()kullanımdan kaldırıldığından, bunun yerine getLayoutPosition().


22
getPosition () artık kullanımdan kaldırıldığı için getLayoutPosition () yöntemini kullanın.
Ankur Chaudhary

2
bu kod parçası için teşekkürler :) sadece bir ipucu: private static RecyclerViewClickListener itemListener;yapıcıda durağan bir şekilde durağan referans alın .
David Artmann

1
@khurramengr Yöntemdeki her öğeye bir dinleyici ekledim onBindViewHolder. Dahası, liste öğemin tamamı tıklanabilir değildi (öğenin yalnızca bir kısmı).
Ferran Negre

1
Burada bir WeakReference kullanarak olmamalı: new MyRecyclerViewAdapter(context, this)? Bu bellek sızıntılarına neden olabilir
RamwiseMatt

2
public void recyclerViewListClicked(View v, int position);Değiştirici public, arayüz yöntemleri için gereksiz
Joel Raju,

35
public class MyRvAdapter extends RecyclerView.Adapter<MyRvAdapter.MyViewHolder>{
    public Context context;
    public ArrayList<RvDataItem> dataItems;

    ...
    constructor
    overrides
    ...

    class MyViewHolder extends RecyclerView.ViewHolder{
        public TextView textView;
        public Context context;

        public MyViewHolder(View itemView, Context context) {
            super(itemView);

            this.context = context;

            this.textView = (TextView)itemView.findViewById(R.id.textView);

            // on item click
            itemView.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    // get position
                    int pos = getAdapterPosition();

                    // check if item still exists
                    if(pos != RecyclerView.NO_POSITION){
                        RvDataItem clickedDataItem = dataItems.get(pos);
                        Toast.makeText(v.getContext(), "You clicked " + clickedDataItem.getName(), Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }
}

4
Teşekkür ederim. getAdapterPosition () ihtiyacım olan şey.
Ayaz Alifov

1
Kod için teşekkürler adam !! Günümü kurtardım. GetAdapterPosition () 'u nereye koyacağımdan emin değildim ve kodunuzu izleyerek onu çalıştırdım ... Güzel ve kolay :)
Vinay Vissh

Çok teşekkür ederim dostum, kodunuz tam olarak buna ihtiyacım vardı! Mutlu adam
Naveen Nirban Yadav

13

Bir Tıklama İşleyici ayarlamak için bir Örnek.

Adapter extends  RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {  ...  }

 public static class MessageViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        public TextView     tv_msg;
        public TextView     tv_date;
        public TextView     tv_sendTime;
        public ImageView    sharedFile;
        public ProgressBar sendingProgressBar;

        public MessageViewHolder(View v) {
            super(v);
            tv_msg =  (TextView) v.findViewById(R.id.tv_msg);
            tv_date = (TextView)  v.findViewById(R.id.tv_date);
            tv_sendTime = (TextView)  v.findViewById(R.id.tv_sendTime);
            sendingProgressBar = (ProgressBar) v.findViewById(R.id.sendingProgressBar);
            sharedFile = (ImageView) v.findViewById(R.id.sharedFile);

            sharedFile.setOnClickListener(this);

        }

        @Override
        public void onClick(View view) {
        int position  =   getAdapterPosition();


            switch (view.getId()){
                case R.id.sharedFile:


                    Log.w("", "Selected"+position);


                    break;
            }
        }

    }

GetAdapterPostion () nedir; buraya?
TheDevMan

1
görünümün konumu tıklandı. özel bir yöntem değildir.
Gilberto Ibarra

Bu, bunu yapmanın en temiz yolu gibi görünüyor, özellikle konumu kullanarak neredeyse her zaman veri almakla ilgilendiğiniz ve RecyclerView nesnesine erişiminiz olmayabileceği için.
FrostRocket

Çok teşekkürler içinint position = getAdapterPosition();
Shylendra Madda

Liste güncellenirken, örneğin notififyXYZ'nin çağrılması nedeniyle getAdapterPosition çağrısının -1
David

11

Bu kodu, aktivitede geri dönüşümcü görünümünü tanımladığınız yere koyun.

    rv_list.addOnItemTouchListener(
            new RecyclerItemClickListener(activity, new RecyclerItemClickListener.OnItemClickListener() {
                @Override
                public void onItemClick(View v, int position) {

                    Toast.makeText(activity, "" + position, Toast.LENGTH_SHORT).show();
                }
            })
    );

Ardından ayrı bir sınıf oluşturun ve şu kodu girin:

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {

    private OnItemClickListener mListener;
    public interface OnItemClickListener {
        public void onItemClick(View view, int position);
    }
    GestureDetector mGestureDetector;
    public RecyclerItemClickListener(Context context, OnItemClickListener listener) {
        mListener = listener;
        mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }
        });
    }
    @Override
    public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
        View childView = view.findChildViewUnder(e.getX(), e.getY());
        if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
            mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
        }
        return false;
    }

    @Override
    public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) {
    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
}

7

aşağıdaki kodla java dosyası oluştur

public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
private OnItemClickListener mListener;

public interface OnItemClickListener {
    public void onItemClick(View view, int position);
}

GestureDetector mGestureDetector;

public RecyclerItemClickListener(Context context, OnItemClickListener listener) {
    mListener = listener;
    mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }
    });
}

@Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
    View childView = view.findChildViewUnder(e.getX(), e.getY());
    if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
        mListener.onItemClick(childView, view.getChildLayoutPosition(childView));
        return true;
    }
    return false;
}

@Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { }

@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

}

ve RecyclerView nesnenizdeki dinleyiciyi kullanın.

recyclerView.addOnItemTouchListener(  
new RecyclerItemClickListener(context, new RecyclerItemClickListener.OnItemClickListener() {
  @Override public void onItemClick(View view, int position) {
    // TODO Handle item click
  }
}));

RecyclerItemClickListenervarsayılan bir android sınıfı değilse, kullandığınız kitaplığı veya sınıfın kendisini sağlamalısınız.
Greg

@Greg Thanx !! göndermeyi unuttum!
MazRoid

5

Bağdaştırıcı yerine etkinlikten / parçadan Geri Dönüşüm Görünümünün Click olayını istiyorsanız, aşağıdaki kısa yol yolunu da kullanabilirsiniz.

recyclerView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                final TextView txtStatusChange = (TextView)v.findViewById(R.id.txt_key_status);
                txtStatusChange.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Log.e(TAG, "hello text " + txtStatusChange.getText().toString() + " TAG " + txtStatusChange.getTag().toString());
                        Util.showToast(CampaignLiveActivity.this,"hello");
                    }
                });
                return false;
            }
        });

Arayüz kullanmak gibi diğer uzun yolları da kullanabilirsiniz.


,, merhaba, ama ya tıklanan öğenin konumunu da almamız gerekirse. ?
mfaisalhyder

Bağdaştırıcı aracılığıyla TAG'deki öğenin konumunu ayarlayabilir ve ardından yukarıda belirtildiği gibi etiketi alabilirsiniz txtStatusChange.getTag ().
ToString

@AmandeepRohila Kodun çalışması için önce yatay bir geri dönüşüm görünümünün sonuna kaydırmam gerekiyor. Ancak o zaman tost işe yarıyor. Önce ileri ve geri kaydırmaya gerek kalmadan çalışmasını sağlamanın bir yolu yok mu?
iOSAndroidWindowsMobileAppsDev

4
recyclerViewObject.addOnItemTouchListener(
    new RecyclerItemClickListener(
        getContext(),
        recyclerViewObject,
        new RecyclerItemClickListener.OnItemClickListener() {
            @Override public void onItemClick(View view, int position) {
                // view is the clicked view (the one you wanted
                // position is its position in the adapter
            }
            @Override public void onLongItemClick(View view, int position) {
            }
        }
    )
);

Bu ne büyücülük? Mükemmel çalışıyor.
Bolling

2

Aşağıdaki kodu kullanın: -

public class SergejAdapter extends RecyclerView.Adapter<SergejAdapter.MyViewHolder>{

...

class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{


    @Override
    public void onClick(View v) {
        // here you use position
        int position = getAdapterPosition();
        ...

    }
}
}

1

RecyclerView böyle bir yöntem sağlamaz.

RecyclerView'da tıklama olaylarını yönetmek için, ViewHolder'ı bağlarken bağdaştırıcımda onClickListener'ı uygulamaya son verdim: ViewHolder'ımda kök görünümüne bir referans tutuyorum (ImageViews, TextViews, vb. İle yapabileceğiniz gibi) ve bağlarken viewHolder Üzerine tıklamayı (konum gibi) ve bir tıklama dinleyiciyi işlemem gereken bilgileri içeren bir etiket ayarlıyorum


3
evet, ViewHolder'da tıklama dinleyicisini ayarlayabiliriz, ancak tıklanan öğe görünümünü ve konumunu ilerideki işlemler için
parçama

1

Tıklanan öğenin konumunu bulmanın en basit ve en kolay yolu:

Ben de aynı problemle karşılaştım.

RecyclerView () öğesinin tıklanan / seçilen öğesinin konumunu bulmak ve bu belirli öğe üzerinde bazı özel işlemler gerçekleştirmek istedim.

getAdapterPosition () yöntemi, bu tür şeyler için bir cazibe görevi görür. Bu yöntemi uzun bir araştırma gününden sonra ve birçok başka yöntemi denedikten sonra buldum.

int position = getAdapterPosition();
Toast.makeText(this, "Position is: "+position, Toast.LENGTH_SHORT).show();

Herhangi bir ekstra yöntem kullanmanıza gerek yoktur. Sadece 'position' adında global bir değişken oluşturun ve bunu adaptörün ana yöntemlerinden herhangi birinde (sınıf veya benzeri) getAdapterPosition () ile başlatın.

İşte bu bağlantıdan kısa bir belge .

22.1.0 sürümünde eklenen getAdapterPosition int getAdapterPosition () Bu ViewHolder tarafından temsil edilen öğenin Bağdaştırıcı konumunu döndürür. Bekleyen bağdaştırıcı güncellemeleri varsa, ancak yeni bir düzen geçişi henüz gerçekleşmediyse, bunun getLayoutPosition () 'dan farklı olabileceğini unutmayın. RecyclerView, bir sonraki düzen geçişine kadar herhangi bir adaptör güncellemesini işlemez. Bu, kullanıcının ekranda gördükleri ile adaptör içeriğinin sahip olduğu arasında geçici tutarsızlıklar oluşturabilir. Bu tutarsızlık, 16 ms'den daha az olacağından önemli değildir, ancak adaptöre erişmek için ViewHolder konumunu kullanmak istiyorsanız bir sorun olabilir. Bazen, kullanıcı olaylarına yanıt olarak bazı eylemler yapmak için tam adaptör konumunu almanız gerekebilir. Bu durumda, ViewHolder'ın Adaptör konumunu hesaplayacak olan bu yöntemi kullanmalısınız.

Memnuniyetle yardım ettim. Şüphe sormaktan çekinmeyin.


RecyclerView'ın tıklanan öğesinin değerini elde etmenin en basit ve en kolay yolu nedir?
अक्षय परूळेकर

1

Benim basit çözümüm

Make a position holder:

    public class PositionHolder {

    private int position;

    public PositionHolder(int position) {
        this.position = position;
    }

    public int getPosition() {
        return position;
    }

    public void setPosition(int position) {
        this.position = position;
    }
}

Aktiviteden almanız gereken verileri konumlandırın veya koyun.

Adaptör yapıcısı:

public ItemsAdapter(Context context, List<Item> items, PositionHolder positionHolder){
        this.context = context;
        this.items = items;
        this.positionHolder = positionHolder;
}

Faaliyette:

 @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        selectedPosition = 0;

        positionHolder = new PositionHolder(selectedPosition);
        initView();
    }

Adaptörde onClickLictener'da
onBindViewHolder'daki öğede

holder.holderButton.setOnClickListener(v -> {
            positionHolder.setPosition(position);
            notifyDataSetChanged();
        });

Artık RecyclerView'da her pozisyon değiştirdiğinizde, Tutucuda tutulur (veya belki de Dinleyici olarak adlandırılmalıdır)

Umarım yararlı olur

İlk yazım; P


0
//Create below methods into the Activity which contains RecyclerView.


private void createRecyclerView() {

final RecyclerView recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    MyAdapter myAdapter=new MyAdapter(dataAray,MianActivity.this);
    recyclerView.setAdapter(myAdapter);
    recyclerView.setItemAnimator(new DefaultItemAnimator());

    setRecyclerViewClickListner(recyclerView);
}

private void setRecyclerViewClickListner(RecyclerView recyclerView){

    final GestureDetector gestureDetector = new GestureDetector(MainActivity.this,new GestureDetector.SimpleOnGestureListener() {
        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }
    });


    recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
            View child =recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());
            if(child!=null && gestureDetector.onTouchEvent(motionEvent)){
               int position=recyclerView.getChildLayoutPosition(child);
                String name=itemArray.get(position).name;

            return true;
        }

        @Override
        public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {

        }

        @Override
        public void onRequestDisallowInterceptTouchEvent(boolean b) {

        }
    });
}

3
Lütfen bir açıklama ekleyin, yalnızca giriş yapmadan kod dökümü ve bunun sorunu nasıl çözdüğüne dair bir açıklama çok yardımcı olmaz.
Mark Rotteveel

0

Bu şekilde dene

Adaptör sınıfı:

 public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ViewHolder> {

public interface OnItemClickListener {
    void onItemClick(ContentItem item);
}

private final List<ContentItem> items;
private final OnItemClickListener listener;

public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) {
    this.items = items;
    this.listener = listener;
}

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

@Override public void onBindViewHolder(ViewHolder holder, int position) {
    holder.bind(items.get(position), listener);
}

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

static class ViewHolder extends RecyclerView.ViewHolder {

    private TextView name;
    private ImageView image;

    public ViewHolder(View itemView) {
        super(itemView);
        name = (TextView) itemView.findViewById(R.id.name);
        image = (ImageView) itemView.findViewById(R.id.image);
    }

    public void bind(final ContentItem item, final OnItemClickListener listener) {
        name.setText(item.name);
        itemView.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                listener.onItemClick(item);
            }
        });
    }
}

}

Faaliyet veya bölümünüzde:

ContentAdapter adapter = new ContentAdapter(itemList, this);

Not: OnItemClickListener'ı sizin tarafınızdan etkinlik veya parçada verilen bağlama dayalı olarak uygulayın ve yöntemleri geçersiz kılın.


Yukarıda güzel çözüm. OnItemClick yönteminin Activity'de nasıl görünmesi gerektiğini göstermek için yukarıdakilere ekleme yapabilir misiniz? Maddenin konumunu bir Niyete geçirmeye çalışıyorum (bir sonraki Etkinliği açmak için) ve yanlış konumu almaya devam ediyorum.
AJW

0

Her seferinde başka bir yaklaşım kullanıyorum. İnsanlar, ViewHolder tarafından görüntülenen bir nesneye bir referans depolamak yerine, bir görünümde depoluyor veya konum alıyor gibi görünüyor.

Bunun yerine bu yaklaşımı kullanıyorum ve sadece onBindViewHolder () çağrıldığında ViewHolder'da depoluyorum ve onViewRecycled () 'de null başvurusunu ayarlıyorum.

ViewHolder her görünmez olduğunda geri dönüştürülür. Yani bu, büyük bellek tüketimini etkilemez.

@Override
public void onBindViewHolder(final ItemViewHolder holder, int position) {
    ...
    holder.displayedItem = adapterItemsList.get(i);
    ...
}

@Override
public void onViewRecycled(ItemViewHolder holder) {
    ...
    holder.displayedItem = null;
    ...
}

class ItemViewHolder extends RecyclerView.ViewHolder {
    ...
    MySuperItemObject displayedItem = null;
    ...
}

0

Kotlin
Metodu için kısa uzantı , tüm öğelerin mutlak konumunu döndürür (yalnızca görünen öğelerin konumunu değil).

fun RecyclerView.getChildPositionAt(x: Float, y: Float): Int {
    return getChildAdapterPosition(findChildViewUnder(x, y))
}

Ve kullanım

val position = recyclerView.getChildPositionAt(event.x, event.y)

0

Özel arayüz java yönteminizde getLayoutPosition () kullanın. Bu, bir öğenin seçilen konumunu döndürür, tüm ayrıntıları kontrol edin

https://becody.com/get-clicked-item-and-its-position-in-recyclerview/


1
Stack Overflow'a hoş geldiniz! Bağlantılar bilgiyi paylaşmanın harika bir yolu olsa da, gelecekte kırılırlarsa soruyu gerçekten cevaplamazlar. Cevabınıza, soruyu cevaplayan bağlantının temel içeriğini ekleyin. İçeriğin çok karmaşık veya buraya sığmayacak kadar büyük olması durumunda, önerilen çözümün genel fikrini tanımlayın. Her zaman orijinal çözümün web sitesine bir bağlantı referansı tutmayı unutmayın. Bakınız: Nasıl iyi bir cevap yazabilirim?
sɐunıɔ ןɐ qɐp

0

Tasarımcıdan, onClicklistItem özelliğini tek bir parametre ile tanımlanan bir yönteme ayarlayabilirsiniz . Aşağıda tanımlanmış bir örnek yöntemim var. GetAdapterPosition yöntemi size seçilen listItem'in dizinini verecektir.

public void exampleOnClickMethod(View view){
    myRecyclerView.getChildViewHolder(view).getAdapterPosition());
}

RecyclerView kurulumu hakkında bilgi için buradaki belgelere bakın: https://developer.android.com/guide/topics/ui/layout/recyclerview


0
//simply check if the adapter position you get not less than zero

holder.btnDelItem.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(holder.getAdapterPosition()>=0){
            list.remove(holder.getAdapterPosition());
            notifyDataSetChanged();
        }
    }
});

3
Eski bir soruyu yanıtlarken, cevabınızın nasıl yardımcı olduğunu açıklamak için bir bağlam eklerseniz, cevabınız diğer StackOverflow kullanıcıları için çok daha faydalı olacaktır, özellikle de zaten kabul edilmiş bir cevabı olan bir soru için. Bakınız: Nasıl iyi bir cevap yazabilirim ?
David Buck

0

Pek çok deneme yanılma sürecinden sonra, bunu yapmanın çok kolay bir yolu olduğunu fark ettim, bu, adaptör sınıfında bir arayüz oluşturarak ve bunu parçada uygulayarak şimdi burada bükülme geliyor, mevcut geçersiz kılma işlevimin içindeki görünüm modelini örnekledim. fragment artık bu fonksiyondaki verileri viemodel'e ve oradan herhangi bir yerden gönderebilirsiniz.

Bu yöntemin iyi bir kodlama yöntemi olup olmadığını bilmiyorum ama lütfen yorumda bana bildirin ve yorum bölümünde bana haber ver görmek isterse düzenli olarak yığın geçişi akışını açıyorum.


0
recyclerView.addOnItemTouchListener(object : AdapterView.OnItemClickListener,
                RecyclerView.OnItemTouchListener {
                override fun onItemClick(p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
                    TODO("Not yet implemented")
                }

                override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) {
                    TODO("Not yet implemented")
                }

                override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
                    TODO("Not yet implemented")
                }

                override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
                    TODO("Not yet implemented")
                }

            })

Kotlin kullanıyorsanız


Bu kod soruyu çözebilirken, sorunun nasıl ve neden çözüldüğüne dair bir açıklama da dahil olmak üzere , gönderinizin kalitesini artırmaya gerçekten yardımcı olur ve muhtemelen daha fazla oy almanıza neden olur. Sadece şu anda soran kişi için değil, gelecekte okuyucular için soruyu yanıtladığınızı unutmayın. Açıklamalar eklemek ve hangi sınırlamaların ve varsayımların geçerli olduğuna dair bir gösterge vermek için lütfen yanıtınızı düzenleyin .
Богдан Опир

-4

OnViewHolder'da onClickListiner'ı herhangi bir görünüme ayarlayın ve yan tıklamada şu kodu kullanın:

Toast.makeText (Drawer_bar.this, "position" + position, Toast.LENGTH_SHORT) .show ();

Drawer_BarAktivite adınızla değiştirin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.