解决这里是解决方案的答案http://www.congdegnu.es/2011/06/02/spinners-en-android-tres-formas-de-poblarlos/ 我正在从我的sqlite数据库中填充一个微调器,如下所示:
Cursor CS = newDB.rawQuery("Select ID AS _id, Name from Schools",null);
CS.moveToFirst();
do{
Schools.add(CS.getString(CS.getColumnIndex("_id")));
} while(CS.moveToNext());
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,Schools);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
我的问题是我只添加一个id,但是如何为该id添加一个值,所以当值get select时我会得到id?
答案 0 :(得分:0)
看一下使用SimpleCursorAdapter代替你的微调器。虽然自API-11以来已弃用此功能,但您可能还需要考虑使用带有LoaderManager的CursorLoader。
可以在此处找到有关如何转换到LoaderManager和CursorLoader的说明: How to transition from managedQuery to LoaderManager/CursorLoader?
我建议你先使用SimpleCursorAdapter,然后如果足够舒适,继续使用另一种方法。
答案 1 :(得分:0)
我认为“学校”是一个包含你自己的班级“学校”的数组。
您可以添加包含该信息的属性。
或者你可以使用二维数组。
比你必须设置你的arrayadapter来获取信息(getter方法)。
希望它有所帮助
答案 2 :(得分:0)
或
采用全局变量
Hashmap schoolmap=new Hashmap();
将数据插入列表时,也会像这样添加Hashmap
CS.moveToFirst();
do{
Schools.add(CS.getString(CS.getColumnIndex("_id")));
schoolmap.put(CS.getString(CS.getColumnIndex("_id")),CS.getColumnIndex("_id"))
} while(CS.moveToNext());
onSpinner项目点击获取这样的值
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
String value=((TextView)view).getText();
int id=Integer.parseInt(schoolmap.get(value));
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
答案 3 :(得分:0)
1)创建ArrayList<School>
2)将所有学校添加到Arraylist
3)创建一个这样的自定义适配器:
public class SchoolAdapter extends ArrayAdapter<School>{
public SchoolAdapter(Context ctx, List<School> schools){
super(ctx, 0, schools);
}
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
TextView tv;
if (convertView == null){
tv = new TextView(getContext());
} else {
tv = (TextView) convertView;
}
tv.setTextSize(16);
final School school = getItem(position);
tv.setText(school.toString());
return tv;
}
}
4)在你的活动中使用它:
final SchoolAdapter adapter = new SchoolAdapter(this, schools);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
School school = adapter.getItem(pos);
// Do whatever you want with your school
}
public void onNothingSelected(AdapterView<?> parent) {
}
});