我有两个网址,一个用于获取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中使用...我没有得到怎么做它...请帮助....谢谢你
答案 0 :(得分:0)
首先,以这种方式解析你的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();
}
现在从&#34; companyNameList&#34;:
填写您的列表 for (int i = 0; i < companyNameList.size(); i++) {
companyNameSpinnerList.add(companyNameList.get(i).get("companyName"));
}
companyNameAdapter.notifyDataSetChanged();
然后使用
String company_name_id = companyIdList.get(i).get(&#34; companyCode&#34;);
Inside Ur&#34; onItemSelected&#34;方法。 &#34; company_name_id&#34;将是您需要的所选公司名称的ID。
方法1-使用&#34; companyNameList&#34;数组来填充适配器。点击任何项目后,获取其位置并使用&#34; companyIdList&#34;获得它的身份。
方法:2-您也可以使用POJO类...首先获取所选项目位置(在您的情况下为&#34; i&#34;)并使用它来从您的POJO获取companyid
答案 1 :(得分:0)
您可以为您的模型设置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) {
}
});