我知道这个主题听起来像是重复的,但我并不是想在这里调试这个问题,而是想绕过它。
我的程序应该做的是:对于文件夹中的每个文件,创建一个新按钮。如果您单击此按钮,请在意图中额外输入您刚刚输入的文件夹的名称。
File directory = new File(prefs.getString("path",null));
File[] files = directory.listFiles();
for (File file :files){
if(file.isDirectory()) {
buttons.add(new Button(this));
Button button = buttons.get(buttons.size() - 1);
String fileName = file.getName();
button.setText(fileName);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(currentActivity, EOChoiceActivity.class);
intent.putExtra("fileExtension",fileName);
startActivity(intent);
}
});
layout.addView(button);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我遇到的问题是“fileName”变量需要放在final中,因为Java给出的是对象的指针而不是值本身。但如果我这样做,则只有最后选择的文件名才会发送给任何按钮。
android ×1