我正在使用3 Spinner组件和每个spinner setOnItemSelectedListener来调用后端并在数组适配器中设置值,同时我已经根据服务器输入检索了值。
首先,我们调用了webservice,并在Spinner适配器中设置了值。我再次调用webservice来获取要设置到微调器适配器中的值,但是在获取位置时,前两次我的搜索按钮上的标签始终为-1值。我正在微调器适配器位置中第三次获得正确的值设置。
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_spinner_item,stateList);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_state.setAdapter(dataAdapter);
spinner_state.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// calling district adapter and default loading the value for as per state adapter
getSalesCustomerDistrictList(parent.getItemAtPosition(position).toString());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
要根据位置获取适配器值。
ArrayAdapter districtAdapter = (ArrayAdapter) spinner_district.getAdapter();
int districtPosition = districtAdapter.getPosition(salesCustomerPinCodeSearch.getData().get(0).getDstrtName());
spinner_district.setSelection(districtPosition);
前两次我获得的位置值是-1,第三次获得正确的值。