【问题标题】:How to get values of EditText from another model / Make an o如何从另一个模型中获取 EditText 的值/制作一个 o
【发布时间】:2022-01-24 03:39:47
【问题描述】:

我正在尝试为回收列表项创建单击方法。 我发现您可以在您为 OnBindViewHolder 中的列表创建的适配器中创建它,并且它可以工作,但是,我无权访问使用适配器的 Activity 中的 EditTexts,我想知道是否有没有办法导入它们以在适配器中使用?提前谢谢你。

【问题讨论】:

  • 你没有访问权限是什么意思?请发布相关代码,以便我们有一个工作的起点。
  • 一般来说,一个好的方法是在视图层中不做任何此类事情。 ViewModel 可以访问该信息,因此您应该让您的 onClick 方法调用 ViewModel 并让它处理类似的事情。

标签: android android-recyclerview


【解决方案1】:

你可以做到,你必须为此使用接口

接口会将您的数据从适配器传递到具有该 EditText 的 Activity。 然后你相​​应地更新你的 EditText。

创建接口

   public interface DataTransferInterface {
     public void onItemClicked(String data);
   }

在适配器中创建接口对象

DataTransferInterface dtInterface;

在适配器的构造函数中初始化它

public MyAdapter(DataTransferInterface dtInterface) {   
   this.dtInterface = dtInterface;
}

当在适配器中单击任何项​​目时,将数据传递给 Activity

    item.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            dtInterface.onItemClicked("Data to be passed here");
        }
    });

现在在你的活动中

像这样实现该接口:

public class MainActivity extends Activity implements DataTransferInterface {

当你在 Activity 中实现接口时,它会显示错误来实现其所需的方法。所以,

@Override
 public void onItemClicked(String Data) {
 // TODO Update your EditText Here
 
 }

像这样初始化你的适配器

myAdapter = new MyAdapter(this);

如果您发现任何困难,您可以阅读更多here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多