简体   繁体   English

单击适配器时如何更改文本按钮

[英]How to change text button when click in adapter

How to change text button when click in adapter I try it's not work 单击适配器时如何更改文本按钮,我尝试不起作用

 public void setQuestData(final ViewHoder viewHoder, final int position) {
        viewHoder.btn_select_qq.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!profileFeedListModelTwos.get(position).getStatus_select().equalsIgnoreCase("SELECTED")){
                    viewHoder.btn_select_qq.setText("Accepted");
                    notifyDataSetChanged();
                }

                notifyDataSetChanged();

            }
        });

How to fix it ? 如何解决? and where is my problem? 我的问题在哪里?

  1. Do not handle the click event inside the adapter class , instead handle it in the fragment using BaseRecyclerViewAdapter.OnRecyclerViewInteractionListener() or adapter listener of the adapter that you are using. 不要处理适配器类内部的click事件,而应使用BaseRecyclerViewAdapter.OnRecyclerViewInteractionListener()或所使用适配器的适配器侦听器在片段中处理它。
  2. Set position as a tag inside your adapter then use it get the item in your fragment. 将位置设置为适配器内的标签,然后使用它获取片段中的项目。
  3. Make your adapter extend BaseRecyclerViewAdapter or adapter that you are using 使您的适配器扩展BaseRecyclerViewAdapter或您正在使用的适配器

Basic Idea adapter = new Adapter( enter code here for setting click listener) 基本想法适配器=新适配器( enter code here以设置点击监听器)

Inside YourAdapter just set the clickListener to your view 在YourAdapter内,只需将clickListener设置为您的视图

viewHoder.btn_select_qq.setOnClickListener(this)

Inside your fragment handle the action on click 在片段内部处理单击操作

YourAdapter adapter = new YourAdapter(getActivity(),new BaseRecyclerViewAdapter.OnRecyclerViewInteractionListener() {
            @Override
            public void onClick(View view) {
                int position = (int) view.getTag();

ItemObject item =adapter .getItem(position);
                switch (view.getId()) {
                    case R.id.view1:
                        //TODO write logic here
                        break;
                    case R.id.view2:
                    //TODO write logic here
                        break;
                    case R.id.view3:
                      //TODO write logic here
                        break;
                }
            }
        });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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