Автозаполнение Edittext - Могу ли я читать из файла CSV?

У меня есть список кодов предметов, которые сохранены в файле 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();
    }
}

Возможный дубликат Как разобрать CSV-файл в массив в Android Studio

animusmind 25.07.2018 13:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
348
2

Ответы 2

Если вы просто ищете предложение для AutoComplete Edittext, вы можете использовать string-array, это проще, и если у вас сложная структура данных, то CSV также подойдет.

если вы хотите сделать это с помощью CSV, пожалуйста, следуйте необходимому шаги, чтобы прочитать файл CSV.

Здесь вы можете сослаться на этот пост https://stackoverflow.com/a/38415815/5343866

Привет, @AbhinavSuman .. я дошел до того, что прочитал CSV-файл в список. Однако в адаптере для AutocompleteTextview последним параметром должен быть String []. Как мне конвертировать?

Aaron 25.07.2018 15:05

Итак, в каком типе данных вы получаете данные из файла CSV. Если вы получили его в списке, преобразуйте его в String [].

animusmind 25.07.2018 15:09

Спасибо за помощь. Я смог найти решение. см. ниже!

Aaron 25.07.2018 16:39

Для всех, кто столкнется с этим в будущем. Это был лучший и самый простой подход, который я нашел!

 // 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();

Другие вопросы по теме