android 如何正确地根据id将数据库中的列表数据显示到spinner中?

py49o6xq  于 2023-01-28  发布在  Android
关注(0)|答案(1)|浏览(232)

我是android studio的新手。我正在尝试显示基于NOMOR_KK的NAMA_PROSES列表。这是我的数据库示例
| 标称值_KK|乌鲁特|NAMA_流程|
| - ------|- ------|- ------|
| 小行星666|1个|贴纸|
| 小行星666|第二章|盖章,SISIR|
| 小行星666|三个|塞塔克、庞兹、凯鲁帕斯|
| 小行星666|四个|卷内分类|
| 小行星666|五个|拉姜+计数器|
| 小行星6037|1个|涂层和处理|
| 小行星6037|第二章|CETAK全息图|
| 小行星6037|三个|波东和分拣|
| 小行星6037|四个|倒带和分拣|
当我尝试基于NOMOR_KK显示NAMA_PROSES时,输出正确,如enter image description here下图所示
但当我更改为另一个KK编号时,旧KK编号的历史记录仍然列出enter image description here
我仍然在寻找如何清除以前的历史记录
spinJSON.java

private void spinJSON(String response){
    try {
        JSONObject obj = new JSONObject(response);
        if (obj.optString("kode").equals("true")){
            dataModels = new ArrayList<>();
            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());
            }
                ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(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();
    }
}
njthzxwz

njthzxwz1#

基本上你的代码逻辑没有错,但是你要注意这一行:

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, getnamaProses);

要在Spinner中选择的字符串目标来自此变量getnamaProses
看起来getnamaProses是一个全局变量,因为我看不到你在提供的函数中声明它。你只是不断地向getnamaProses添加字符串而不清除它。
因此,在向它添加String之前,必须执行类似getnamaProses.clear();的操作。

相关问题