gpt4 book ai didi

android - 如何正确地将数据从 recyclerView 获取到设置了 RV 的 Activity?

转载 作者:行者123 更新时间:2023-11-30 04:58:45 26 4
gpt4 key购买 nike

我有一个 Activity,它有一个 RecyclerView 并保存 ButtonRecyclerView 的每个项目(足球比赛)都包含一些文本(球队名称)和 EditText,用户可以在其中输入数据(实际上是输入比赛的比分)。我的目标是在用户单击保存按钮时将这些分数保存到 Activity 的列表中。

我读了类似的问题(How can I return data from a RecyclerView adapter?),区别在于我需要从 editText 中获取数据,而不是从 checkBox 中获取数据(这很容易通过 onBindViewHolder 方法中的 clickListeners 检查 适配器)

所以我在路上成功了,而且很管用。我实现了这个方法,它实际上从 LinearLayoutManager 获取特定项目,然后从 EditText 获取数据。

    private List<Bet> getNewUserBets() {
View betView;
Bet betItem;
EditText userBet1;
EditText userBet2;

int numberOfMatches = rvMatchesAdapter.getItemCount();
List<Bet> bets = new ArrayList<>();

for (int i = 0; i < numberOfMatches; i++)
{
betItem = rvMatchesAdapter.getItem(i);
betView = linearLayoutManager.findViewByPosition(i);
userScore1 = (EditText) betView.findViewById(R.id.result1);
userScore2 = (EditText) betView.findViewById(R.id.result2);
//here i checked whether the editText is empty and other stuff
bets.add(betItem);
}
return bets;
}

但我想知道我是否以一种好的方式做到了这一点。我认为有两种方法:

  1. 分离逻辑。在Adapter(可能在onBindViewHolder)中实现一个方法,从EditText(用户输入)获取数据。所以关于 View 的逻辑应该在 Adapter 中。在 Activity 中,当用户按下保存按钮时,只需调用此方法(如 getAdatper().)。所以 Activity 对 View 一无所知(Adapter 中发生了什么)。

  2. 就像我一样。在 Activity 中创建整个逻辑,我认为这比第 1 条中描述的方法更糟糕。

那么我应该用什么方式来解决这个任务呢?如果 1 方法更好,我应该如何从 Adapter 直接从 EditText 获取数据。或者也许还有另一种方法(解决方案)可以完成这项工作。如果有任何帮助,我将不胜感激。

最佳答案

我发现在 AdapterViewHolder 方法中使用 TextWatcher 更容易,它从 EditText 获取数据,在那些 EditText 被更改的那一刻。将此数据添加到 Bets 的 Adapter 中的 ArrayList,然后在 Activity

中使用此 ArrayList(这是公共(public)的)

关于android - 如何正确地将数据从 recyclerView 获取到设置了 RV 的 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58632091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com