我有一个微调器,下拉列表中有来自我的WebService的正确选项,但是当我选择一个选项时,它没有显示在Spinner字段中。
我的ArrayAdapter定义......
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,catTorneo);
catTorneo有选项,它的定义为ArrayList
如果我使用List对象更改ArrayAdapter,则Spinner会正确无误。
List<String> list = new ArrayList<String>();
list.add("Android");
list.add("Java");
list.add("Spinner Data");
list.add("Spinner Adapter");
list.add("Spinner Example");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,list);
catTorneo定义
ArrayList<String> catTorneo ;
在onTaskComplete方法中,我将catTorneo填充为..
try {
ljsonArray = ljsonObject.getJSONArray(tag);
for (int i = 0; i < ljsonArray.length(); i++) {
ljsonObject = ljsonArray.getJSONObject(i);
// Llena el spinner con el nombre de c/u de los nombres de torneos
String ls = ljsonObject.optString("tor_nombre");
catTorneo.add(ljsonObject.optString("tor_nombre"));
}
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
发生了什么?,为什么使用ArrayList对象不能正常工作并且List对象工作正常。
答案 0 :(得分:1)
由于你的列表中充满了String,为什么不简单一点?
您可以使用此
Spinner mySpinner = (Spinner)findViewById(R.id.yourSpinner'sId);
String[] myItems = {"Android", "Java", "Spinner Data", "Spinner Adapter", "Spinner Example"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item_1, myItems);
mySpinner.setAdapter(adapter);
如果你有一个以上的字符串,那么你将不得不制作自己的适配器
答案 1 :(得分:0)
我猜您对ArrayList
的更改尚未通知微调器。
我会做什么?
在onTaskComplete
方法
ljsonArray = ljsonObject.getJSONArray(tag);
for (int i = 0; i < ljsonArray.length(); i++) {
ljsonObject = ljsonArray.getJSONObject(i);
// Llena el spinner con el nombre de c/u de los nombres de torneos
String ls = ljsonObject.optString("tor_nombre");
catTorneo.add(ljsonObject.optString("tor_nombre"));
}
//add this line
dataAdapter.notifyDataSetChanged(); //tells the spinner that data has changed
//put a toast here so that ull know when the data has be added to it :)