【问题标题】:How to get text from editText that is on the recycle view adapter at some position如何从某个位置的回收视图适配器上的editText获取文本
【发布时间】:2020-02-23 16:13:12
【问题描述】:

我在 recyclerview 适配器的第 5 位有一个编辑文本。我需要单击按钮从该edittext中获取文本(按钮位于适配器的片段上,我需要该片段上的文本

【问题讨论】:

    标签: android


    【解决方案1】:

    在您的适配器中创建接口。

    public interface ClickListener {
        void onItemClick(int position, View v);
    }
    

    您可以在适配器的 Recycler View Holder 类中实现接口方法,以根据您的要求获取卡片视图的文本。

    @Override
        public void onClick(View v) {
            clickListener.onItemClick(getAdapterPosition(),v);
            imageView_icon.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    clickListener.onItemClick(getAdapterPosition(), v);
                }
            });
    }
    

    现在,创建一个 ClickListner 类的全局静态对象,并将其传递给点击卡片的点击列表方法。现在在点击时从特定卡片视图中获取edittext文本。

     //Create global reference
     private static ClickListener clickListener;
    

    创建方法来从片段中检测回收器视图中的点击。

     public void setOnItemClickListner(ClickListener clickListner) {
        MainAdapter.clickListener = clickListner;
    }
    

    现在您可以从绑定视图持有者的编辑文本中获取文本

       @Override
    public void onBindViewHolder(final MainViewHolder holder, final int position) {
    
        final MainModel mainModel = modelList.get(position);
    
        holder.cardView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickListener.onItemClick(holder.getAdapterPosition(), v);
                editText.getText().toString();
            }
        });
    }
    

    它会为你工作。

    【讨论】:

    • 我解决了这个问题...这行不通...我之前尝试过界面,但它行不通,因为我的提交按钮在片段中。当我单击时,我需要在 onClick 方法中调用适配器视图持有者。如果我调用适配器,它将在该 onClick 方法完成后完成。但是在此方法结束时,我的 api 被命中。所以我必须这样做其他方式。顺便谢谢。
    猜你喜欢
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多