Здравствуйте, снова столкнулся с проблемой адаптеров. Суть такая, что при запуске определенного фрагмента в AutoCompleteTextView должны загрузиться данные для того чтобы можно было найти определенное поле из БД. Я написал свой ArrayAdapter и с его помощью пытаюсь всю нужную мне информацию засунуть в AutoComplete. Вот код:
view = inflater.inflate(R.layout.fragment, null);
ArrayList<Products> prodCollectionForSearch = new ArrayList<>();
//prodCollectionForSearch = Query(SelectCityScreen.mCity);
ResultSet rs1;
try {
Statement statement = MainActivity.connect.createStatement();
rs1 = statement.executeQuery("select top 10 *\n" +
"from EXPORT_TABLE\n" +
"where City_name = 'Москва' AND Quantity = 1");
while (rs1.next())
{
prodCollectionForSearch.add(new Products(rs1.getString("Product_name")));
}
ArrayAdapterProduct prodAdapter = new ArrayAdapterProduct(getActivity(),prodCollectionForSearch);
mAutoCompleteSearchProduct = (AutoCompleteTextView) view.findViewById(R.id.search_product_autoCompl);
mAutoCompleteSearchProduct.setAdapter(prodAdapter);
} catch (SQLException e) {
e.printStackTrace();
}
Как я понимаю, адаптер заполняет AutoComplete, но если в него что-то вводить, то донаборщик ничего не подсказывает и нет никаких возможностей для выбора. Где я ошибся?
Ниже приведу классы ArrayAdapterProduct и Products
public class ArrayAdapterProduct extends ArrayAdapter<Products> {
public ArrayAdapterProduct(Context context, ArrayList<Products> mProducts) {
super(context,0, mProducts);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Products prod = getItem(position);
if (convertView == null)
{
convertView = LayoutInflater.from(getContext()).inflate(R.layout.search_item, parent, false);
}
TextView mTextViewSearchProducts = (TextView) convertView.findViewById(R.id.txt_search_product);
mTextViewSearchProducts.setText(prod.product_name);
return convertView;
}
}
public class Products {
public String product_name;
public Products(String product_name) {
this.product_name = product_name;
}
}