Java 自动完成编辑文本-我可以读取CSV文件吗?

Java 自动完成编辑文本-我可以读取CSV文件吗?,java,android,csv,autocomplete,android-edittext,Java,Android,Csv,Autocomplete,Android Edittext,我在android应用程序的原始文件夹中有一个保存在CSV文件中的项目代码列表 为了消除人为错误,我希望当用户开始键入edittext时,它将根据CSV文件中的itemcodes自动完成 有人知道这是否可能吗 以下是我到目前为止的情况: private void ReadItemCodes() { InputStream IS = getResources().openRawResource(R.raw.itemcodes); BufferedReader reader = n

我在android应用程序的原始文件夹中有一个保存在CSV文件中的项目代码列表

为了消除人为错误,我希望当用户开始键入edittext时,它将根据CSV文件中的itemcodes自动完成

有人知道这是否可能吗

以下是我到目前为止的情况:

 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也很好

如果您希望使用CSV,请按照必要的步骤阅读CSV文件


在这里,你可以为将来遇到这一问题的任何人参考这篇文章。这是我发现的最好最简单的方法

 // 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();
//获取布局中AutoCompleteTextView的引用
itemcodetextview=(AutoCompleteTextView)findViewById(R.id.itemcode);
batchnumbertextview=(AutoCompleteTextView)findViewById(R.id.batchnumber);
//从批号CSV读取
Scanner Scanner=new Scanner(getResources().openRawResource(R.raw.batchnumbers));
List ListBatchNumber=new ArrayList();
while(scanner.hasNext()){
添加(scanner.next());
}
阵列适配器=
新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,ListBatchNumber);
batchnumbertextview.setAdapter(适配器);
scanner.close();
//从项目代码中读取CSV
Scanner scanner2=新扫描仪(getResources().openRawResource(R.raw.itemcodesofficial));
List listitemcodes=new ArrayList();
while(scanner2.hasNext()){
添加(scanner2.next());
}
阵列适配器2=
新的ArrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,listitemcodes);
setAdapter(adapter2);
扫描头2.close();

Hi@AbhinavSuman的可能重复项。。我已经把CSV文件读到了列表中。但是,在AutocompleteTextview的适配器中,最后一个参数必须是字符串[]。如何转换?那么从CSV文件中获取数据的数据类型是什么。如果您在列表中找到它,请将其转换为字符串[]。谢谢您的帮助。我找到了解决办法。看下面!