![](/img/trans.png)
[英]how to get associated other json value in spinner when an item selected
[英]how to get Associated Json value based on selected spinner item
我有两个URL,一个用于获取regionname,第二个用于登录。 第一个网址给出的响应为
[{"CmpnyName":"Indore","CmpnyCode":"111"},{"CmpnyName":" Nagpur","CmpnyCode":"222"},{"CmpnyName":" Jabalpur","CmpnyCode":"333"},{"CmpnyName":"Amravati","CmpnyCode":"444"}]
现在,我必须在微调器中显示CmpnyName。 所以我照做了
typeofcompany.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
ba = typeofcompany.getSelectedItem().toString();
SelectType(ba);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
我的问题是,当我选择CmpnyName时,它应该调用其关联的CmpnyCode,例如indore应该调用111,依此类推。...将在第二个URL中使用...我不知道该怎么做。任何帮助请....谢谢
首先,以这种方式解析您的Gson字符串:
ArrayList<HashMap<String,String>> companyNameList = new ArrayList<>()
ArrayList<HashMap<String,String>> companyIdList= new ArrayList<>();
try
{
JSONArray array = new JSONArray(preferenceManager.getSalaryJobFilter());
for(int arr = 0; arr<array.length(); arr++){
HashMap<String,String> hashMap = new HashMap<>();
HashMap<String,String> hashMap1 = new HashMap<>();
JSONObject object = array.getJSONObject(arr);
hashMap.put("companyName",object.getString("companyName"));
hashMap1.put("companyCode",object.getString("companyCode"));
companyNameList .add(hashMap);
companyIdList.add(hashMap1);
}
}
catch (JSONException e) {
e.printStackTrace();
}
现在从“ companyNameList”填写您的列表:
for (int i = 0; i < companyNameList.size(); i++) {
companyNameSpinnerList.add(companyNameList.get(i).get("companyName"));
}
companyNameAdapter.notifyDataSetChanged();
然后使用
字符串company_name_id = companyIdList.get(i).get(“ companyCode”);
在Ur内部,使用“ onItemSelected”方法。 “ company_name_id”将是您所需的所选公司名称的ID。
方法1-使用“ companyNameList”数组填充适配器。 单击任何项目后,获取其位置并使用“ companyIdList”获取其ID。
方法:2-您也可以为其使用POJO类...首先获取所选商品的位置(在您的情况下为“ i”),然后使用它从您的POJO获取公司ID
您可以为模型提供一个bean
类。
class MyBean implements java.io.Serializable{
String companyName;
String companyCode;
//getter-setter
}
然后通过传递Bean类的数组列表(即ArrayList<MyBean>
为Spinner设置自定义适配器。
然后在微调器的onItemSelectedListener中执行以下操作:
typeofcompany.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
MyBean clickedCompany = myBeanList.get(i);
// then you can get clickedCompany.getCompanyName();
// clickedCompany.getCompanyCode();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.