В общем суть, есть два спиннера. В одном список брендов машин, в другом уже конкретные наименования автомобилей, которые должны подгружаться, в зависимости от выбора в первом спиннере.
В MainActivity выставляю на первом спиннере OnItemSelectedListener:
brandsSpinner.setOnItemSelectedListener(new BrandsAdapterListener());
Код класса BrandsAdapterListener:
public class BrandsAdapterListener extends MainActivity implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedBrand = parent.getItemAtPosition(position).toString();
JSONObject request = new JSONObject();
try{
request.put("BrandName", selectedBrand);
String json = request.toString();
String response = new CarTask().execute(
"*****", // здесь ссылка на апи
json ).get();
JSONObject responseJsonObject = new JSONObject(response);
JSONArray cars = responseJsonObject.getJSONArray("cars");
String[] carsNames = new String[cars.length()];
for (int i =0;i<cars.length();i++){
JSONObject car = cars.getJSONObject(i);
carsNames[i] = car.getString("name");
}
// собственно пытаюсь использовать вот такой код, только видимо не так его готовлю
ArrayAdapter carAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, carsNames);
carAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner carsSpinner = (Spinner) findViewById(R.id.spinner2);
carsSpinner.setAdapter(carAdapter);
// Toast.makeText(parent.getContext(), response, Toast.LENGTH_LONG).show();
}
catch (Exception e){
Toast.makeText(parent.getContext(),"error " + e.toString(), Toast.LENGTH_LONG).show();
}
Log.d("brand", selectedBrand);
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
}
C таким кодом в toast попадает ошибка "System services not available to Activities before onCreate()” . При этом, листенер присвоен в методе onCreate, так что я не знаю куда копать.
Соответственно в этом классе я как то не так использую arrayAdapter и не так назначаю его спиннеру. Кто нибудь знает, как это реализовать правильно?