第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在沒(méi)有ListView的ArrayList中添加OnitemClickListener

如何在沒(méi)有ListView的ArrayList中添加OnitemClickListener

繁星coding 2023-03-31 09:23:26
我想在 android studio 中制作一個(gè)儀表板。我使用兩個(gè) xml 來(lái)制作儀表板 main_activity 和 list_item 活動(dòng)。在編碼會(huì)話中,我使用了模型類適配器和主類。public class MainActivity extends AppCompatActivity {ArrayList<DashModel> dashModelArrayList;DashAdapter dashAdapter;private RecyclerView recyclerView;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    recyclerView = findViewById(R.id.rv1);    dashModelArrayList = new ArrayList<>();    String heads[] = {"Jobs", "My Profile", "Messages", "Applied Jobs", "Resume", "Settings"};    String subs[] = {"12 new jobs found", "75% complete", "2 new messages", "3 applies jobs", "Edit resume", "Set preferences"};    int images[] = {R.drawable.find_jobs, R.drawable.profile, R.drawable.messages, R.drawable.applied_jobs,            R.drawable.resume, R.drawable.settings};    for (int count = 0; count < heads.length; count++) {        DashModel dashModel = new DashModel();        dashModel.setHead(heads[count]);        dashModel.setSub(subs[count]);        dashModel.setImage(images[count]);        dashModelArrayList.add(dashModel);        //this should be retrieved in our adapter    }    recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2));    dashAdapter = new DashAdapter(dashModelArrayList);    recyclerView.setHasFixedSize(true);    recyclerView.setAdapter(dashAdapter);}}如何在此處添加 onItemclickListener?我希望并希望在圖標(biāo)中添加 OnItemclickListener,但我不能也不知道如何添加。
查看完整描述

1 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

要為 RecyclerView 創(chuàng)建一個(gè),onClickListener你必須創(chuàng)建一個(gè)類來(lái)實(shí)現(xiàn)RecyclerView.OnItemTouchListener


import android.support.v7.widget.*;

import android.view.*;

import android.content.*;


public class RecyclerViewTouchListener implements RecyclerView.OnItemTouchListener {


    private GestureDetector gestureDetector;

    private ClickListener clickListener;


    public RecyclerViewTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {

        this.clickListener = clickListener;

        gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {

            @Override

            public boolean onSingleTapUp(MotionEvent e) {

                return true;

            }


            @Override

            public void onLongPress(MotionEvent e) {

                View child = recyclerView.findChildViewUnder(e.getX(), e.getY());

                if (child != null && clickListener != null) {

                    clickListener.onLongClick(child, recyclerView.getChildPosition(child));

                }

            }

        });

    }


    @Override

    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {


        View child = rv.findChildViewUnder(e.getX(), e.getY());

        if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {

            clickListener.onClick(child, rv.getChildPosition(child));

        }

        return false;

    }


    @Override

    public void onTouchEvent(RecyclerView rv, MotionEvent e) {

    }


    @Override

    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {


    }


    public interface ClickListener{


        public void onClick(View view,int position);

        public void onLongClick(View view,int position);

    }

}

之后,您可以將其附加到您的設(shè)備上RecyclerView以收聽(tīng)點(diǎn)擊。


recyclerView.addOnItemTouchListener(new RecyclerViewTouchListener(getActivity(), recyclerView, new RecyclerViewTouchListener.ClickListener(){


        @Override

        public void onClick(View view, int position)

        {

            // TODO: Implement this method



        }


        @Override

        public void onLongClick(View view, int position)

        {

            // TODO: Implement this method

        }                                           

    }));


查看完整回答
反對(duì) 回復(fù) 2023-03-31
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)