【发布时间】:2015-06-26 14:13:03
【问题描述】:
所以,我使用Android - configure Spinner to use array 尝试只显示自定义java 类的一个字段。我的 Java 类如下(它是我的 Google App Engine 后端的一部分)
public class CropVariety {
private String varietyId;
private String varietyName;
public String getVarietyId() { return varietyId; }
public String getVarietyName() {
return varietyName;
}
public void setVarietyId(String data) {varietyId = data; }
public void setVarietyName(String data) {
varietyName = data;
}
public String toString()
{
return varietyName;
}
}
然后在活动异步任务中,我在 Post Execute 中有以下内容
super.onPostExecute(result);
varietyList = result;
spinner = (Spinner) findViewById(R.id.variety_spinner);
spinner.setSelection(0);
dataAdapter = new ArrayAdapter(context,android.R.layout.simple_spinner_item, varietyList);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter.notifyDataSetChanged();
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
OnItemSelectedListener 实现如下:
public void onItemSelected(AdapterView parent, View view, int pos, long id) {
// String selectedItem = parent.getItemAtPosition(pos).toString();
CropVariety selectedItem = (CropVariety) parent.getItemAtPosition(pos);
//check which spinner triggered the listener
switch (parent.getId()) {
case R.id.variety_spinner:
selectedVarietyName = selectedItem.getVarietyName();
selectedVarietyId = selectedItem.getVarietyId();
break;
}
因此,当 selectedVarietyName 和 selectedVarietyId 获得正确的值时,下拉列表中的每个项目如下所示:
{"varietyId":"sefs","varietyName":"asfd"}
我点击了链接,但不知道为什么微调器中没有显示品种名称。谢谢
【问题讨论】:
标签: android google-app-engine android-arrayadapter android-spinner google-cloud-endpoints