You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据NOMOR_KK向Spinner展示数据库列表并清除历史数据

解决Spinner切换KK编号后旧数据残留的问题

你的问题根源在于**getnamaProses集合没有在每次加载新数据前清空**,每次调用spinJSON时,新的NAMA_PROSES是追加到原有集合里,导致旧数据残留。

修改代码的关键点:

  • 在填充新数据前,调用getnamaProses.clear();清空历史数据集合
  • 可选优化:复用已有的Adapter,通过notifyDataSetChanged()更新数据,避免重复创建对象带来的性能开销

修改后的代码如下:

private void spinJSON(String response){
    try {
        JSONObject obj = new JSONObject(response);
        if (obj.optString("kode").equals("true")){
            dataModels = new ArrayList<>();
            // 关键步骤:清空历史数据集合
            getnamaProses.clear();
            JSONArray dataArray = obj.getJSONArray("data");

            for (int i = 0; i < dataArray.length(); i++) {
                DataModel dataModel = new DataModel();
                JSONObject dataobj = dataArray.getJSONObject(i);

                dataModel.setNAMA_PROSES(dataobj.getString("NAMA_PROSES"));
                dataModels.add(dataModel);
            }

            for (int i = 0; i < dataModels.size(); i++){
                getnamaProses.add(dataModels.get(i).getNAMA_PROSES().toString());
            }
            
            // 优化:复用已存在的Adapter,无需每次新建
            if (spinnerKK.getAdapter() != null) {
                ((ArrayAdapter<String>) spinnerKK.getAdapter()).notifyDataSetChanged();
            } else {
                ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_spinner_item, getnamaProses);
                spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                spinnerKK.setAdapter(spinnerArrayAdapter);
            }
        }
    } catch (JSONException e){
        e.printStackTrace();
    }
}

额外说明:

  • 如果getnamaProses不是成员变量,而是每次调用方法时新建,也可以直接替换成getnamaProses = new ArrayList<>();来清空,不过调用clear()的方式更高效
  • 调用notifyDataSetChanged()能让Adapter自动感知数据变化,实时更新Spinner的显示内容

内容的提问来源于stack exchange,提问作者Farrasta K S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:35:30