Я реализовал android виджет прядильщика, который работает нормально, когда я добавляю arrayList с фиксированными строковыми значениями и устанавливаю его в адаптер прядильщика, но когда дело доходит до получения данных динамически (веб-служба) и добавляется в прядильщик по л oop это не работает. В обоих случаях данные заполняются от счетчика до счетчика, но не могут получить выбранный элемент из счетчика при нажатии на него.
OrderRequestActivity Class
public class OrderRequestActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private LinearLayout itemLinear;
String token = "";
CategoryModel categoryModel;
Spinner spinner;
ArrayList<String> categoryDataArrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.layout_order_request);
spinner = (Spinner) findViewById(R.id.spinner);
categoryDataArrayList = new ArrayList<String>();
token = CommonUtilities.getPreference(this,"token");
getCategoryWebService();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categoryDataArrayList);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
spinner.setOnItemSelectedListener(this);
Log.e("Token OrderRequest",token);
}
public void lookingItemClick(View v) {
Intent i = new Intent(OrderRequestActivity.this,OrderExchangeActivity.class);
startActivity(i);
}
private void getCategoryWebService(){
WebServiceController.getResponse("GET", OrderRequestActivity.this, "order/categories", null, true,token, new WebServiceController.VolleyCallback() {
@Override
public void onSuccess(String result) {
try {
Log.e("Response result",result);
categoryModel = new CategoryModel().response(result);
CommonUtilities.setPreference(OrderRequestActivity.this,"CategoryData",result);
for (int i=0;i<=categoryModel.getData().size();i++) {
categoryDataArrayList.add(categoryModel.getData().get(i).getCategoryName());
Log.e("CategoryName >> ",categoryModel.getData().get(i).getCategoryName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(String error) {
try {
Log.e("Response Error",error);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(parent.getContext(), "Selected: " + parent.getSelectedItem(), Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}