我的adapter.notifyDataSetChanged()不起作用

Den*_*one 2 java android android-arrayadapter

如何使用我的新阵列更新ArrayAdapter?

Belwo是我的ArrayAdapter,添加了一个默认数组.

String[] array_spinner = new String[]{"Select your state."};
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item,array_spinner);
adapter.setDropDownViewResource(R.layout.state_spinner_layout);
Myspinner.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

现在我加载一些JSON数据来解析信息array_spinner_data,我想调用notifyDataSetChanged()

array_spinner = new String[]jsonArray.length(); 


        for (int i=0; i<jsonArray.length(); i++)
        {   
            String styleValue = jsonArray.getJSONArray(i).getString(0);    
            Log.d(TAG, styleValue);
            array_spinner[i] = styleValue;

        }
        Log.d(TAG, String.valueOf(array_spinner.length));
        adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

我没有看到任何错误,我的所有Log.d都应该回来了.但是当我点击我的微调器时,所有显示的都是原始的,Select your state 我遗漏了一些基本的onCreate和Json加载的东西,但如果有人需要看到它只是让我知道.

K-b*_*llo 11

notifyDataSetChanged因为您没有更改数据集,所以"无法正常工作",您正在创建一个新的副本,即适配器不知道的副本.使用List<>而不是数组,并修改你传递给您的适配器相同的列表对象,它会工作.如果要保留当前代码,则必须在新数据集上创建新适配器并将其应用于微调器.