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<>而不是数组,并修改该你传递给您的适配器相同的列表对象,它会工作.如果要保留当前代码,则必须在新数据集上创建新适配器并将其应用于微调器.
| 归档时间: |
|
| 查看次数: |
6597 次 |
| 最近记录: |