【问题标题】:How to convert a Textview array list into a hashset?如何将 Textview 数组列表转换为哈希集?
【发布时间】:2017-07-08 10:49:24
【问题描述】:

嘿,stackoverflow 社区,

我想通过共享首选项将 Textviews 的 Arraylist 发送到另一个 Activity,所以我尝试将我的列表转换为 HashSet。

这不被接受:

public List<TextView> FavDishes = new ArrayList<TextView>();

。 . . FavDishes = new ArrayList(); FavDishes.add(eingabe);

        **Set<String> taskSet = new HashSet<String>(FavDishes);**
        PreferenceManager.getDefaultSharedPreferences(context)
                .edit()
                .putStringSet("Data", taskSet)
                .apply();

它告诉我:“无法解析 android 小部件 Textview 上的构造函数 HashSet”

你会如何解决这个问题?

感谢您的宝贵时间。

【问题讨论】:

  • 首先,你为什么要这么做?
  • 我的应用是关于门萨的。我希望用户能够将菜肴添加到“最喜欢的菜肴”列表中。因此,当他向下滚动并单击一道菜时,他可以通过一个按钮在那里选择:“添加到最喜欢的菜”通过“到最喜欢的菜按钮”链接到“最喜欢的菜”列表。在“最喜欢的菜”活动中,他看到了已经添加的菜。

标签: android arraylist hashset


【解决方案1】:

遍历 FavDishes 数组以获取 TextView 值作为字符串并将它们存储到一个数组中,然后将该数组传递给您的任务集而不是 FavDishes。

代码将类似于:

List<TextView> FavDishes = new ArrayList<TextView>();
    FavDishes.add(fav1TV);
    FavDishes.add(fav2TV);
    FavDishes.add(fav3TV);


ArrayList<String> FavDishesString = new ArrayList<String>();

    for (TextView FavDish : FavDishes ){
        FavDishesString.add(FavDish.getText().toString());      
    }

    Set<String> taskSet = new HashSet<String>(FavDishesString);

迭代arrayList方法的有用链接:

https://crunchify.com/how-to-iterate-through-java-list-4-way-to-iterate-through-loop/

【讨论】:

  • 谢谢!听起来是个不错的解决方案,能否请您编写一些示例代码,以便我更好地理解和实施您的建议?
  • 抱歉,这里的午餐时间刚刚开始烧烤,所以暂时不能,但如果没有其他人发帖,我可能会回去。
  • 太棒了!不要着急。我试过这个 if (v == save) { FavDishes.add(eingabe); for (int i = 0; i
  • 非常感谢烧烤,我添加了一些代码,应该有助于解决您询问的特定问题。如果是,请接受答案。我阅读了您对总体目标的评论,但过于宽泛。因此,我建议您在编写代码时发布新的特定问题。
猜你喜欢
  • 2015-09-13
  • 1970-01-01
  • 2015-11-26
  • 2019-10-27
  • 2019-05-23
  • 2012-10-29
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
相关资源
最近更新 更多