【问题标题】:Refresh the current item of a Spinner刷新 Spinner 的当前项
【发布时间】:2015-03-13 06:31:46
【问题描述】:

考虑以下组合列表

comboList = new Spinner(this);
list_arr = new ArrayList<String>();

ArrayList 由 SharedPreferences 中的字符串填充,Spinner 以这种方式填充

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, list_arr);
comboList.setAdapter(dataAdapter);

然后它会在事件 OnClickListener() 的情况下更新

                list_arr.clear();
                ArrayList<String> res = getMyLists();
                for (int i = 0; i < res.size(); i++) {
                    list_arr.add(res.get(i));
                }

如何以编程方式刷新已选择的项目? 在 GUI 中,我必须从列表中手动选择另一个值,然后再改回来。

这可能是另一个question 的副本,但它非常古老且没有答案。

【问题讨论】:

  • 当你说要刷新已经选择的项目时,你的意思是想让它为空吗?还是只是设置为新列表中的第一项?
  • 设置为新列表中的第一项。我正在尝试你的答案。我会告诉你的,谢谢你的帮助

标签: java android


【解决方案1】:

您可能需要致电dataAdapter.notifyDataSetChanged();

【讨论】:

    【解决方案2】:

    在这种情况下,您需要重新创建微调器的适配器:

    list_arr.clear();
    
    ArrayList<String> res = getMyLists();
    for (int i = 0; i < res.size(); i++) {
     list_arr.add(res.get(i));
    }
    
    dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list_arr);
    comboList.setAdapter(dataAdapter);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多