我正在停止显示目录名称的multiple_choice列表视图。 由于它是多项选择,因此每个项目都包含一个文本视图和一个复选框。 默认情况下,当我单击任何项目时,将选中/取消选中该复选框。 这不是我想要的功能。 因为,我正在显示目录的名称,我希望当用户点击该项目而不是选中该复选框时,应显示一个包含该目录的子文件夹名称的新列表。
简单来说,当选择项目的文本视图时,应显示一个新列表。如果选中该复选框,则只应选中/取消选中复选框。
下面是我的代码:
public class DirectoryListing extends Activity implements OnItemClickListener {
ListView dirlv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.directorylisting);
try {
ArrayList<String> dirList = new ArrayList<String>();
dirList = getAllDirList();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,
android.R.id.text1, dirList);
dirlv = (ListView) findViewById(R.id.lvDirList);
dirlv.setAdapter(adapter);
dirlv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
dirlv.setOnItemClickListener(this);
} catch (Exception e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
}
}
private ArrayList<String> getAllDirList() {
ArrayList<String> result = new ArrayList<String>();
File home = new File("/");
File[] files = home.listFiles();
for (File file : files) {
if (file.isDirectory()) {
result.add(file.getName());
}
}
return result;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
try {
TextView tv = (TextView) view;
//TODO
} catch (Exception e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
}
}
}