我是Android的新手,我一直在使用改造2从服务器获取数据,在活动开始或创建活动时在我的应用程序中,调用了一种从服务器获取数据并响应此调用的方法我正在获取数据并将数据设置到微调器,它成功完成,并且在运行应用程序时,数据列表在用户界面中可见。 现在,我必须添加“自动完成”文本视图,以便在键入字符时微调器根据“自动完成”文本视图中键入的字符提供该数据列表。 我添加了带有数据的数组适配器,并将其设置为可以工作的微调器,在此之下,使用相同的数组适配器,将其设置为自动完成文本视图,但给出了空指针异常的错误。因此,据我了解,适配器以某种方式将其设置为早期,这指向空错误。
public void fetch_information() {
ApiInterface2 = ApiClient.getApiClient().create(Api.class);
Call<List<City>> call = ApiInterface2.GetCities();
call.enqueue(new Callback<List<City>>() {
@Override
public void onResponse(Call<List<City>> call, Response<List<City>> response) {
CityList = new ArrayList<City>();
CityList = response.body();
City myCustomObject = new City();
myCustomObject.setCityName("Select Country");
CityList.add(myCustomObject);
ArrayList<String> CityNames = new ArrayList<String>();
cities = new String[CityList.size()];
citiesid = new String[CityList.size()];
for (int i = 0; i < CityList.size(); i++) {
cities[i] = CityList.get(i).getCityName();
citiesid[i] = CityList.get(i).getCityId();
CityNames.add(CityList.get(i).getCityName());
}
city_adapter = new ArrayAdapter<String>(AddKhataPurchase.this, android.R.layout.simple_list_item_1, cities);
city_adapter.setDropDownViewResource(R.layout.spinner_dropdown_layout);
city_spinner.setAdapter(city_adapter);
city_spinner.setSelection(cities.length - 1);
// fetch_searchable_spinner_cities();
if(CityNames.size()> 1) {
ArrayAdapter myAdapter = new ArrayAdapter<String>(AddKhataPurchase.this,
android.R.layout.simple_spinner_dropdown_item, CityNames);
//here not able to set the adapter as null pointer exception happens
myAutoCompleteTextView.setAdapter(myAdapter);
}
}
@Override
public void onFailure(Call<List<City>> call, Throwable t) {
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
活动打开,方法(fetch_information)被调用,并且在设置数组适配器后在这里onResponse城市微调器在UI中显示城市列表,但是当我尝试通过将数组适配器设置为myAutoCompleteTextview空指针异常在它下面执行相同操作时,尽管得到了数据,但仍然错误。 响应呼叫结束后,我可以设置自动完成文本视图吗?