在 android 中从微调器获取值部分而不是文本部分
Get value part from spinner not text part in android
我有一个微调器,我将它绑定到对象列表,每个对象都包含文本和 ID part.Text 部分显示给用户,用户可以 select 微调器中的任何项目。现在我的问题是如何从微调器中获取价值部分。
我这样绑定微调器:
Itm=new CItem( "-1", "Select Project" );
lstItm.add(Itm);
for(int i=0; i < array.length(); i++) {
JSONObject tmpJson=array.getJSONObject(i);
Itm=new CItem(tmpJson.getString("ID"),tmpJson.getString("Text"));
lstItm.add(Itm);
}
ArrayAdapter<CItem> adapterProj = new ArrayAdapter<CItem>(myactivity, android.R.layout.simple_spinner_item, lstItm);
drpProj.setAdapter(adapterProj);
我正试图获得这样的价值:
drpProj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CItem item=(CItem)parent.getItemAtPosition(position);
String value=item.toString();// get value
Log.d("Selected Item",value);
etcal.setText(value);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
还有CItem class是这样的:
public class CItem {
private String ID = "";
private String Value = "";
public CItem () {
ID = "";
Value = "";
}
public CItem (String _ID, String _Value) {
ID = _ID;
Value = _Value;
}
@ Override
public String toString () {// Why should override toString ()? Because the adapter display data if the incoming adapter object is not a string of case, directly on the use of the object. ToString ()
// TODO Auto-generated method stub
return Value;
}
public String getId () {
return ID;
}
public String getValue () {
return Value;
}
}
但它 returns 文本部分不是值部分。所以我的问题是如何获得微调器的价值部分。
做
itemSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CItem item=(CItem)parent.getItemAtPosition(position);
String value=item.getValue().toString();// get value
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
在你的onItemSelected(....)
在您的 onItemSelected 方法中,调用以下命令以在微调器的选定位置获取 CItem 对象。
onItemSelected(AdapterView<?> parent, View view, int position, long id)
CItem item = (CItem) parent.getSelectedItem();
String desiredValue = item.getValue();
我有一个微调器,我将它绑定到对象列表,每个对象都包含文本和 ID part.Text 部分显示给用户,用户可以 select 微调器中的任何项目。现在我的问题是如何从微调器中获取价值部分。
我这样绑定微调器:
Itm=new CItem( "-1", "Select Project" );
lstItm.add(Itm);
for(int i=0; i < array.length(); i++) {
JSONObject tmpJson=array.getJSONObject(i);
Itm=new CItem(tmpJson.getString("ID"),tmpJson.getString("Text"));
lstItm.add(Itm);
}
ArrayAdapter<CItem> adapterProj = new ArrayAdapter<CItem>(myactivity, android.R.layout.simple_spinner_item, lstItm);
drpProj.setAdapter(adapterProj);
我正试图获得这样的价值:
drpProj.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CItem item=(CItem)parent.getItemAtPosition(position);
String value=item.toString();// get value
Log.d("Selected Item",value);
etcal.setText(value);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
还有CItem class是这样的:
public class CItem {
private String ID = "";
private String Value = "";
public CItem () {
ID = "";
Value = "";
}
public CItem (String _ID, String _Value) {
ID = _ID;
Value = _Value;
}
@ Override
public String toString () {// Why should override toString ()? Because the adapter display data if the incoming adapter object is not a string of case, directly on the use of the object. ToString ()
// TODO Auto-generated method stub
return Value;
}
public String getId () {
return ID;
}
public String getValue () {
return Value;
}
}
但它 returns 文本部分不是值部分。所以我的问题是如何获得微调器的价值部分。
做
itemSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CItem item=(CItem)parent.getItemAtPosition(position);
String value=item.getValue().toString();// get value
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
在你的onItemSelected(....)
在您的 onItemSelected 方法中,调用以下命令以在微调器的选定位置获取 CItem 对象。
onItemSelected(AdapterView<?> parent, View view, int position, long id)
CItem item = (CItem) parent.getSelectedItem();
String desiredValue = item.getValue();