Android:多选选择列表 - 仅在选中复选框时选中该复选框,而不是在文本视图中选中

时间:2012-07-05 07:50:56

标签: java android

我正在停止显示目录名称的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();
        }
    }

}

0 个答案:

没有答案