我需要显示我从API获得的文件和文件夹的目录列表。一旦用户点击其中一个目录,我就会查找其子目录并将其列在右侧的父目录下,然后继续。 不确定最好的方法是什么?
我制作了一个设置视图并拥有一个"目录"设置。单击它后,我需要在PreferenceScreen中加载子目录。并且用户必须能够深入到子目录并使用 checkBoxPreference
之类的东西选择他想要的目录所以最后我可以编制一个Checked Directories列表。
我的想法
我是Android新手,我不确定如何实现这些?
请你指点一下我可以尝试一下吗?我不是要求代码示例,只是对一些可能的方法或想法的逻辑解释?
答案 0 :(得分:3)
你的问题很抽象,所以我不能给你一个具体的答案。
我可以提供一些指导和示例。
动态添加首选项的示例(将EditTextPreference替换为CheckboxPreference)并在此之前获取文件列表:
SettingsActivity (扩展PreferenceActivity)
private void setHomeDirectoryPreference(String home_dir)
{
final EditTextPreference etp = new EditTextPreference(this);
etp.setKey("home_directory");
etp.setTitle("Home directory");
//...
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
((PreferenceScreen) findPreference("initial_preference")).addPreference(etp);
}
列出文件子文件:
file.listFiles();
此外,您可能需要经常检查基础文件是否存在:
f.exists();
点击它后,我需要加载子目录 PreferenceScreen
我个人使用PreferenceDialog和ListView:
DialogPreference示例:
public class HiddenFilesDialogPreference extends DialogPreference {
public static Context ctx;
public HiddenFilesDialogPreference(Context context, AttributeSet attrs) {
super(context, attrs);
this.ctx = context;
}
@Override
protected View onCreateDialogView() {
LayoutInflater inflater = ((Activity) ctx).getLayoutInflater();
View vw = inflater.inflate(R.layout.content_view, null);
ListView lv = (ListView) vw.findViewById(android.R.id.list);
File[] hidden_files = HiddenFileHandler.getAllHiddenFilesAsFiles();
HiddenFilesListAdapter adapter = new HiddenFilesListAdapter(ctx, hidden_files);
lv.setAdapter(adapter);
return vw;
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
persistBoolean(positiveResult);
}
@Override
public void onClick (DialogInterface dialog, int which)
{
super.onClick(dialog, which);
Log.v("which", Integer.toString(which));
if(which == -1) { //Clear all
HiddenFileHandler hfh = new HiddenFileHandler(ctx);
hfh.clearHiddenFiles();
}
}
}
然后,在对话框中,您可以设置onClickListeners()来替换对话框内容等。
从具体实施开始,然后返回更具体的问题。