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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何處理 RecyclerView 項目 onClick ,如果它對多個活動使用單個適配器類

如何處理 RecyclerView 項目 onClick ,如果它對多個活動使用單個適配器類

ibeautiful 2021-10-20 15:25:41
**我將單個 MyAdapter 類用于兩個不同的活動(VocabularyActivity 和 PracticeActivity)。我想為兩個 Activity 中定義的不同項目 onClick 打開不同的 Intent。我還附上了我的代碼。我正在嘗試使用項目 onClick 的活動(VocabularyActivity 和 PracticeActivity),但無法實現(xiàn)它。請指導我完成這個。** //MyAdapter.javapackage com.example.pkjha.recyclerview;import android.content.Context;import android.support.annotation.NonNull;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {    private List<ListItem> listItems;    private Context context;    public MyAdapter(List<ListItem> listItems, Context context) {        this.listItems = listItems;        this.context = context;    }    @NonNull    @Override    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {        View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.listitem_recyclerview,parent,false);        return new ViewHolder(v);    }   @Override    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {        ListItem listItem=listItems.get(position);        viewHolder.textViewHeader.setText(listItem.getFirstText());        viewHolder.textViewDescription.setText(listItem.getSecondText());    }    @Override    public int getItemCount() {        return listItems.size();    }    public class ViewHolder extends RecyclerView.ViewHolder    {        public TextView textViewHeader,textViewDescription;        public ViewHolder(@NonNull View itemView) {            super(itemView);            textViewDescription=itemView.findViewById(R.id.firstText);            textViewHeader=itemView.findViewById(R.id.secondText);        }    }}
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

您可以創(chuàng)建一個接口并在兩個活動中實現(xiàn)它,然后為這兩個活動編寫意圖代碼。然后,您可以使用在適配器構(gòu)造函數(shù)中傳遞的上下文從適配器調(diào)用接口方法。


查看完整回答
反對 回復 2021-10-20
?
尚方寶劍之說

TA貢獻1788條經(jīng)驗 獲得超4個贊

嘗試這個


適配器類:


 public abstract class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {


            private List<ListItem> listItems;

            private Context context;


            public MyAdapter(List<ListItem> listItems, Context context) {

                this.listItems = listItems;

                this.context = context;

            }


            @NonNull

            @Override

            public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

                View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.listitem_recyclerview, parent, false);

                return new ViewHolder(v);

            }



            @Override

            public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {

                ListItem listItem = listItems.get(position);

                viewHolder.textViewHeader.setText(listItem.getFirstText());

                viewHolder.textViewDescription.setText(listItem.getSecondText());

            }



            @Override

            public int getItemCount() {

                return listItems.size();

            }



            public class ViewHolder extends RecyclerView.ViewHolder {

                public TextView textViewHeader, textViewDescription;


                public ViewHolder(@NonNull View itemView) {

                    super(itemView);


                    textViewDescription = itemView.findViewById(R.id.firstText);

                    textViewHeader = itemView.findViewById(R.id.secondText);


                    itemView.setOnClickListener(new View.OnClickListener() {

                      @Override

                      public void onClick(View v) {

                        onItemClick(getAdapterPosition());

                      }

                    });

                }

            }


            public abstract void onItemClick(int pos);


        }

詞匯活動:


MyAdapter mAdapter = new MyAdapter(mList, this) {

            public void onItemClick(int position) {

                // your intent

            }

        };

練習活動:


MyAdapter mAdapter = new MyAdapter(mList, this) {

                public void onItemClick(int position) {

                    // your intent

                }

            };


查看完整回答
反對 回復 2021-10-20
?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

您可以這樣做:

首先在您的適配器中聲明一些接口并將其分配給 itemClick

并在創(chuàng)建您的適配器時發(fā)送您的自定義點擊事件


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


    public interface OnItemClickListener {

        void onItemClick(View view, ListItem item);

    }


    private List<ListItem> listItems;

    private Context context;

    private OnItemClickListener mClickListener;



    public MyAdapter(List<ListItem> listItems, Context context, OnItemClickListener listener) {

        this.listItems = listItems;

        this.context = context;

        this.mClickListener= listener;

    }


    @NonNull

    @Override

    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.listitem_recyclerview,parent,false);

        return new ViewHolder(v);

    }




   @Override

    public void onBindViewHolder(@NonNull ViewHolder viewHolder,final int position) {


        ListItem listItem=listItems.get(position);

        viewHolder.textViewHeader.setText(listItem.getFirstText());

        viewHolder.textViewDescription.setText(listItem.getSecondText());

        if(mClickListener !=null)

            viewHolder.itemView.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                listener.onItemClick(v, listItem);

            }

        });

    }





    @Override

    public int getItemCount() {

        return listItems.size();

    }





    public class ViewHolder extends RecyclerView.ViewHolder

    {

        public TextView textViewHeader,textViewDescription;

        public ViewHolder(@NonNull View itemView) {

            super(itemView);


            textViewDescription=itemView.findViewById(R.id.firstText);

            textViewHeader=itemView.findViewById(R.id.secondText);

        }

    }

}


查看完整回答
反對 回復 2021-10-20
  • 3 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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