У меня есть список кодов предметов, которые сохранены в файле CSV в моей необработанной папке в моем приложении для Android.
Чтобы искоренить человеческую ошибку, я бы хотел, чтобы, когда пользователь начинает вводить текст редактирования, автозаполнение выполнялось на основе кодов элементов в файле CSV.
Кто-нибудь знает возможно ли это?
Вот что у меня есть на данный момент:
private void ReadItemCodes() {
InputStream IS = getResources().openRawResource(R.raw.itemcodes);
BufferedReader reader = new BufferedReader(new InputStreamReader(IS, Charset.forName("UTF-8")));
String line;
try {
while ((line = reader.readLine()) != null) {
//Split by commas
String[] tokens = line.split(",");
//Read the data
ItemCodes+=line;
}
} catch (IOException e) {
e.printStackTrace();
}
}




Если вы просто ищете предложение для AutoComplete Edittext, вы можете использовать string-array, это проще, и если у вас сложная структура данных, то CSV также подойдет.
если вы хотите сделать это с помощью CSV, пожалуйста, следуйте необходимому шаги, чтобы прочитать файл CSV.
Здесь вы можете сослаться на этот пост https://stackoverflow.com/a/38415815/5343866
Привет, @AbhinavSuman .. я дошел до того, что прочитал CSV-файл в список. Однако в адаптере для AutocompleteTextview последним параметром должен быть String []. Как мне конвертировать?
Итак, в каком типе данных вы получаете данные из файла CSV. Если вы получили его в списке, преобразуйте его в String [].
Спасибо за помощь. Я смог найти решение. см. ниже!
Для всех, кто столкнется с этим в будущем. Это был лучший и самый простой подход, который я нашел!
// Get a reference to the AutoCompleteTextView in the layout
itemcodetextview = (AutoCompleteTextView) findViewById(R.id.itemcode);
batchnumbertextview = (AutoCompleteTextView) findViewById(R.id.batchnumber);
//READ FROM BATCH NUMBER CSV
Scanner scanner = new Scanner(getResources().openRawResource(R.raw.batchnumbers));
List<String> listbatchnumbers = new ArrayList<String>();
while (scanner.hasNext()) {
listbatchnumbers.add(scanner.next());
}
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listbatchnumbers );
batchnumbertextview.setAdapter(adapter);
scanner.close();
//READ FROM ITEM CODES CSV
Scanner scanner2 = new Scanner(getResources().openRawResource(R.raw.itemcodesofficial));
List<String> listitemcodes = new ArrayList<String>();
while (scanner2.hasNext()) {
listitemcodes.add(scanner2.next());
}
ArrayAdapter<String> adapter2 =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listitemcodes );
itemcodetextview.setAdapter(adapter2);
scanner2.close();
Возможный дубликат Как разобрать CSV-файл в массив в Android Studio