这是将数据添加到微调器中的代码。 首先,我从SD卡读取文件名,然后将其添加到微调器。但它无法奏效。它只显示第一个文件名。
File yourDir = new File(catagoryFilePath);
for (File f : yourDir.listFiles()) {
if (f.isFile()) {
myCatagoryFilename = f.getName();
}
try {
String categoryFileName[] = myCatagoryFilename.split("@");
for(int i = 0; i<categoryFileName.length; i++){
String catagoryData = categoryFileName[i];
if (catagoryData.contains("-")) {
String data[] = catagoryData.split("-");
String lang = data[0];
String cat = data[1];
}
}
String catagoryName = categoryFileName[2];
} catch (Exception e) {
e.printStackTrace();
}
catagory = new ArrayList<String>();
catagory.add(myfileName);
}
这就是我设置spinner adepter的方式。
catagoryAdapter = new ArrayAdapter<String>(this, R.layout.spinner, catagory);
catagoryAdapter.setDropDownViewResource(R.layout.spinner);
mySpinnerCatagoryList.setAdapter(catagoryAdapter);
答案 0 :(得分:1)
您正在循环的每次迭代重置变量catagory
。将此行移出for
循环:
catagory = new ArrayList<String>(); // move this line up.
for (File f : yourDir.listFiles()) {
// the rest
catagory.add(myfileName);
}
答案 1 :(得分:1)
您没有在catagory
列表中添加名称。在loop
运行的地方进行这些更改,以便添加所有文件名。
catagory = new ArrayList<String>();
File yourDir = new File(catagoryFilePath);
for (File f : yourDir.listFiles()) {
if (f.isFile()) {
myCatagoryFilename = f.getName();
catagory.add(myfileName);//myCatagoryFileName
}
try {
String categoryFileName[] = myCatagoryFilename.split("@");
for(int i = 0; i<categoryFileName.length; i++){
String catagoryData = categoryFileName[i];
if (catagoryData.contains("-")) {
String data[] = catagoryData.split("-");
String lang = data[0];
String cat = data[1];
}
}
String catagoryName = categoryFileName[2];
} catch (Exception e) {
e.printStackTrace();
}
}