【问题标题】:Store multiple EditText values in Hashmap在 Hashmap 中存储多个 EditText 值
【发布时间】:2012-11-28 09:37:56
【问题描述】:

我是安卓新手。我有一个列表视图,每行有 3 个 Edittext。现在我用不同的三个 hashmap 存储它,但我想将它存储在一个中。那么如何将这 3 个 EditText 值存储在一个 LinkedHashMap 中?

【问题讨论】:

  • 再描述一下您的用例。您可能不想存储对 UI 控件的引用,而不是绝对需要,因此可能抽象出一个模型对象并编写一些代码,将您的模型数据绑定到 EditText 字段和从 EditText 字段绑定。如果您提供有关您的特定案例的更多信息,我可以举一个更好的例子
  • ListView 与适配器一起工作,适配器已经将数据存储在列表中。您可能只使用那里的数据。

标签: android listview hashmap android-edittext


【解决方案1】:

请参阅下面的代码,将所有编辑文本值存储到哈希图中。

LinkedHashMap lHashMap = new LinkedHashMap();
hash.put("key1", editText1.getText().toString());
hash.put("key2", editText2.getText().toString());
hash.put("key3", editText3.getText().toString());

【讨论】:

  • 感谢您的回复...我可以在一个键上存储 3 个值吗?
  • @Niyati 不,这是不可能的,如果有必要将所有 edittext 值存储在一个键中,然后使用字符串连接。
  • 非常感谢..我会尝试这种方式。还有一个问题,我可以在 hashmap 的键上存储 arraylist 吗?
  • @Niyati 制作 Hashmap 的 Arraylist 并尝试。
【解决方案2】:

这就是你需要的。

LinkedHashMap<Integer, String> myHashMap = new LinkedHashMap<Integer, String>();

ListView lv = new ListView(this);
EditText et1 = new EditText(this);
EditText et2 = new EditText(this);
EditText et3 = new EditText(this);

et1.setText("EditText1");
et2.setText("EditText2");
et3.setText("EditText3");

lv.addView(et1);
lv.addView(et2);
lv.addView(et3);

for (int i = 0; i < lv.getChildCount(); i++) {
    EditText child = (EditText) lv.getChildAt(i);
    myHashMap.put(i, child.getText().toString());
}

如果有什么不清楚的地方可以随时提问。

【讨论】:

  • 谢谢你和..对不起我在提问中的错误请查看编辑后的问题。我在一行中有三个 EditText。那我该怎么做呢?
【解决方案3】:

您可以查看下面的示例,并在编辑文本 textchanged 时在适配器 getview() 中使用 hash.put。

LinkedHashMap lHashMap = new LinkedHashMap();

hash.put("key1", youredittexvalue);

http://www.vogella.com/articles/AndroidListView/article.html

【讨论】:

  • 感谢您的回复...我已经这样做了,但它只将一个 EditText 值存储在一个 HashMap 中,我想将所有 3 个 EditText 值存储在一个 HashMap 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-15
相关资源
最近更新 更多