这是我的Asynk任务,我从服务器获取数据并调用Oncreate方法
class download extends AsyncTask<Void, Void, Void> {
String result;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(RDistributor.this);
pDialog.setTitle("CheckUser Connection");
pDialog.setMessage("Please wait...");
pDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
try {
result = JSONfunctions2.getJSONfromURL(URL + "?spokecode="
+ "GUJAHM270");
_jarray1 = new JSONArray(result);
stringArray = new ArrayList<String>();
// stringArray.add("Select Role");
for (int i = 0; i <= _jarray1.length(); i++) {
JSONObject _obj = _jarray1.getJSONObject(i);
SpokeCode = _obj.getString("SpokeCode").toString();
DistributerCode = _obj.getString("DistributerCode")
.toString();
DistributerName = _obj.getString("DistributerName")
.toString();
stringArray.add(DistributerName);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
if (_jarray1.length() == 0) {
showpopup("All Distributers had already been registered!");
} else {
dataAdapter = new ArrayAdapter<String>(RDistributor.this,
R.layout.spinner_item, stringArray);
// ArrayAdapter<String> dataAdapter = new
// ArrayAdapter<String>(this,R.layout.spinner_item,
// stringArray);
dataAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// set the ArrayAdapter to the spinner
rolespinner.setAdapter(dataAdapter);
}
pDialog.dismiss();
super.onPostExecute(result);
}
}
这是选择的微调器和获取值。
rolespinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
DistributerName=rolespinner.getSelectedItem().toString();
Toast.makeText(RDistributor.this, DistributerName, 10000).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
我正在印刷中微调是从服务器来也distributerCode数据distributerName和分支从服务器,我想未来的代码时,我选择与我得到的分销商代码值,并从下拉谈到ditributorname的代码选择向下请建议我如何经销商名称我将实现这一目标。我正面临着这个问题。
答案 0 :(得分:1)
我认为你需要包装一个对象来存储这些属性。
public class Model {
public String spokeCode;
public String DistributerCode;
.......
}
ArrayList<Model> list = new ArrayList<Model>();
list.add(model);
list.add(model);//
// and so on
//do search
DistributerName=rolespinner.getSelectedItem().toString();
Model searchModel;
for (Model m : list) {
if (m.distributerName.equals(DistributerName)) {
searchModel = m;
break;
}
}
答案 1 :(得分:1)
声明:
HashMap<String, String> spinnerMap = new HashMap<String, String>();
for (int i = 0; i <= _jarray1.length(); i++) {
JSONObject _obj = _jarray1.getJSONObject(i);
SpokeCode = _obj.getString("SpokeCode").toString();
DistributerCode = _obj.getString("DistributerCode")
.toString();
DistributerName = _obj.getString("DistributerName")
.toString();
spinnerMap.put(DistributerName, DistributerCode);
stringArray.add(DistributerName);
}
和spinner item-select方法更新:
rolespinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
String to= spinnerMap.get(rolespinner.getSelectedItem());
Toast.makeText(MainActivity.this,
to, 10000);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
享受!!!