【问题标题】:Change value in one recyclerview from selection of another recyclerview从另一个回收器视图的选择中更改一个回收器视图中的值
【发布时间】:2017-03-19 02:55:29
【问题描述】:

我在同一个活动中有两个 recyclerviews 我希望在单击第二个 recyclerView 的项目后立即更改第一个项目的值

我已经能够检索到 2nd recyclerView 的选定值

我希望在选择颜色时更改银行图标

当我重新选择或选择一个新图标时它会改变

【问题讨论】:

  • 你能发布你的代码吗??

标签: android material-design android-recyclerview


【解决方案1】:

根据您的要求,您必须在两个 recycleview 持有者中使用 onclicklistner 并将回调传递给两个适配器。

你的回调接口是:

        interface Result(){
        public setposition(int position);
        }


         public BankAdapter(Context context,Arralist<Bank> mList,Result result){
         this.context=context;
         this.mList=mList;
         this.result=result;

         }


        private final OnClickListener mOnClickListener = new MyOnClickListener();

        @Override
        public MyViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
            View view = LayoutInflater.from(mContext).inflate(R.layout.myview, parent, false);
            view.setOnClickListener(mOnClickListener);
            return new MyViewHolder(view);
        }

        The onClick method:

        @Override
        public void onClick(final View view) {
            int itemPosition = mRecyclerView.getChildLayoutPosition(view);
            result.setposition(itemPosition);
        }

在您的主要活动中:

    private int selectedBank= -1;
    private BankAdapter bankAdapter;
    private ColorAdapter colorAdapter;

    bankAdapter=new BankAdapter(this, listBank, new Result(){
    @Override
    public void onClick(,int position) {
        selectedBank=position;
    }
    });

    bankRecyleView.setAdapter(bankAdapter);

在您的 ColorReycleView 适配器中使用相同的代码来检测项目点击:

    colorAdapter=new ColorAdapter(this, listColor, new Result(){
    @Override
    public void onClick(View v,int position) {
    if(selectedBank==-1)
    {
     Toast.makeText(this, "Select bank first", Toast.LENGTH_LONG).show();
    }
    else{

    //// Do your code here

    /*  here you get your color postion selected
        remove item from bank list and change with selected color image as per your list
        listBank.add(selectedBank,"changed color image");
        bankAdapter.notifyItemChanged();
     */



    }

    }
    });
    colorRecyleView.setAdapter();

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多