我在Android应用程序的原始文件夹中有一个保存在CSV文件中的ItemCode列表。
为了消除人为错误,我希望这样做,以便用户开始键入时,edittext将根据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();
}
}
答案 0 :(得分:0)
如果您只是在寻找AutoComplete Edittext
的建议,那么可以使用string-array
,它会更容易;如果您有一些复杂的数据结构,那么CSV也很不错。
如果您希望使用CSV进行操作,请按照必要的步骤来阅读 CSV 文件。
在这里您可以参考此帖子https://stackoverflow.com/a/38415815/5343866
答案 1 :(得分:0)
适合以后遇到此问题的任何人。这是我发现的最好,最简单的方法!
// 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();