如何从另一个模型中获取 EditText 的值/制作一个 o
Posted
技术标签:
【中文标题】如何从另一个模型中获取 EditText 的值/制作一个 o【英文标题】:How to get values of EditText from another model / Make an o 【发布时间】:2022-01-24 03:39:47 【问题描述】:我正在尝试为回收列表项创建单击方法。 我发现您可以在您为 OnBindViewHolder 中的列表创建的适配器中创建它,并且它可以工作,但是,我无权访问使用适配器的 Activity 中的 EditTexts,我想知道是否有没有办法导入它们以在适配器中使用?提前谢谢你。
【问题讨论】:
你没有访问权限是什么意思?请发布相关代码,以便我们有一个工作的起点。 一般来说,一个好的方法是在视图层中不做任何此类事情。 ViewModel 可以访问该信息,因此您应该让您的onClick
方法调用 ViewModel 并让它处理类似的事情。
【参考方案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
【讨论】:
以上是关于如何从另一个模型中获取 EditText 的值/制作一个 o的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 如何通过 Id 从另一个模型中获取名称
我如何传递从另一个模型获取的角色数组以在 laravel 中注册表单
如何从 alertDialog.setView(R.layout.some_layout) 获取 EditText 的值