如何从recyclerView正确获取数据到设置RV的活动?

问题描述 投票:1回答:1

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

[我读了类似的问题(How can I return data from a RecyclerView adapter?),区别在于我需要从editText而不是从checkBox获取数据(这很容易通过onBindViewHolder中的Adapter方法中的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获取数据(由用户输入)。因此,有关视图的逻辑应在Adapter中。当用户按下保存按钮时,只需在Activity中调用此方法即可(例如getAdatper().)。因此Activity对视图一无所知(Adapter中发生了什么)。

  2. 像我一样。在Activity中建立整个逻辑,我认为这比编号1所述的方法差。

所以我应该以哪种方式解决此任务?如果1种方法更好,我应如何直接从EditText中获取Adapter中的数据。或者,也许还有另一种方法(解决方案)可以做到这一点。我将非常感谢您的帮助。

android performance android-activity android-recyclerview recycler-adapter
1个回答
0
投票

[我发现在TextWatcher的更改时,更容易在ViewHolderAdapter方法中使用EditText,该方法从EditText获取数据。将此数据添加到投注的ArrayList中的Adapter,然后在Activity]中使用此ArrayList(公共)

© www.soinside.com 2019 - 2024. All rights reserved.