我想创建一个显示月份的微调器,例如“1月,2月等”。从那个微调器,我想传递在“1,2等”中选择的值而不是微调器显示的值。有什么建议可以解决这个问题吗?
答案 0 :(得分:1)
使用这个简单的代码
ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, yourItemsArray);
adapter_state
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
yourSpinner.setAdapter(adapter_state);
yourSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
int position = yourSpinner
.getSelectedItemPosition() + 1;
// position is your selected position
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
使用Spinner.getSelectedItemPosition()+ 1;添加1因为它从0,1,2 ...
开始答案 2 :(得分:0)
创建一个pojo类:
public class SpinnerUtils {
public SpinnerUtils(String spinnerText, int value) {
this.spinnerText = spinnerText;
this.value = value;
}
public String getSpinnerText() {
return spinnerText;
}
public int getValue() {
return value;
}
public String toString() {
return spinnerText;
}
String spinnerText;
int value;
}
然后:
SpinnerUtils items[]=new SpinnerUtils[array.length()];
items[i] = new SpinnerUtils(c.getString("name"), c.getInt("id"));
for (int i = 0; i <array.length(); i++) {
items[i] = new SpinnerUtils(c.getString("name"), c.getInt("id"));
}
ArrayAdapter<SpinnerUtils> adapter = new ArrayAdapter<SpinnerUtils> .
(this,android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
s.setAdapter(adapter);
其中s是你的微调器。要检索ID:
SpinnerUtils d = items[position];
int standard = d.getValue();
在微调器的setOnItemSelectedListener
内创建上面两行以获取id。我给了你一个粗略的想法。希望它可以工作。