ディレクトリの名前を表示する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();
}
}
}