【问题标题】:Android Adding List to Hashmap replacing old ListAndroid将列表添加到Hashmap替换旧列表
【发布时间】:2017-06-28 07:16:54
【问题描述】:

*一次又一次调用addOption函数,替换Map中的旧值

private void addOption() {

    counter=counter+1;

    List<AttributeValue> optionListInput = new ArrayList<>();    

    AttributeValue inputAtt;
    LinearLayout addOptionLaout=new LinearLayout(this);

    for (int ii=0;ii<addOptionListItem.size();ii++){
        inputAtt=addOptionListItem.get(ii);
        TextView labelText = new TextView(this);

        if (inputAtt.getInputType().equals("text") || inputAtt.getInputType().equals("textarea")) {
            EditText editText = new EditText(this);
            int id_for = View.generateViewId();
            editText.setTag(inputAtt.getAttributeCode());
            editText.setId(id_for);
            inputAtt.setViewId(id_for);                
            editText.setBackgroundResource(R.drawable.plain_box_white_round);
            editText.setLayoutParams(params);
            editText.setPadding(padding10, padding10, padding10, padding10);
            editText.setInputType(InputType.TYPE_CLASS_TEXT);
            editText.setGravity(Gravity.CENTER_VERTICAL);
            addOptionLaout.addView(editText);
        }  
        System.out.println("view Id: "+inputAtt.getViewId());
        optionListInput.add(inputAtt);
    }
    String mapCounter=counter+"";
    addOptionListMap.put(mapCounter,optionListInput);
}

Hashmap 旧值被新视图 Id 值替换。

【问题讨论】:

  • 你想要什么!!!您能否编辑您的问题并使其更合理地让其他人理解
  • 实际上将列表添加到地图是替换地图中的旧值
  • @SubodhAndroid 什么是 demoList
  • @SubodhAndroid 也许您使用相同的键来放置列表。
  • @Krish 我正在输入计数器作为键,每次调用肯定会递增,并不是说它只显示一条记录,而是显示具有相同值(最近值)的多条记录......

标签: java android hashmap


【解决方案1】:

谢谢大家,我找到了答案,因为我使用的是 java,所以它总是通过引用发送值,所以我修改的值在父 Map 中得到修改,所以我创建了一个新列表,并为每个对象插入了父对象在子列表的对象构造函数中列出值。

【讨论】:

    猜你喜欢
    • 2020-05-25
    • 2021-10-10
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多