android可扩展列表视图

发布于 2024-11-11 18:14:06 字数 3273 浏览 10 评论 0原文

我正在使用可扩展列表,但我想知道用户单击哪个项目的位置
我已经使用了 onitemclick 但它没有显示消息..
我做错了什么?

public void funName(){
    File ringtones_directory = new File(DIRECTORY);
    if (!ringtones_directory.exists()) {
        AlertDialog.Builder ad = new AlertDialog.Builder(
                FindFilesByType.this);
        ad.setTitle("Directory Not Found");
        ad.setMessage("Sorry! The ringtones directory doesn't exist.");
        ad.setPositiveButton("OK", null);
        ad.show();

        hasErrors = true;
    }

    if (!ringtones_directory.canRead()) {
        AlertDialog.Builder ad = new AlertDialog.Builder(
                FindFilesByType.this);
        ad.setTitle("Permissions");
        ad
                .setMessage("Sorry! You don't have permission to list the files in that folder");
        ad.setPositiveButton("OK", null);
        ad.show();
        hasErrors = true;
    } else {
        Ringtones = FindFiles(false);

        if (Ringtones.size() < 1) {
            AlertDialog.Builder ad = new AlertDialog.Builder(
                    FindFilesByType.this);
            ad.setTitle("Permissions");
            ad.setMessage("Sorry! No ringtones exists in " + DIRECTORY
                    + ".");
            ad.setPositiveButton("OK", null);
            ad.show();
            Log.e(LOG_TAG, "No ringtones were found.");
            hasErrors = true;
        }

    }

    try {

        if (!hasErrors) {
            // refreshList();
            // this.lv1.setAdapter(new ArrayAdapter<String>(
            // FindFilesByType.this, android.R.layout.test_list_item,
            // Ringtones));
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    FindFilesByType.this, android.R.layout.test_list_item,
                    Ringtones);
            ArrayList<String> GrouppList = new ArrayList<String>();
            GrouppList.addAll(Ringtones);
            ArrayList<ArrayList<Color>> colors = new ArrayList<ArrayList<Color>>();
            for(int i=0;i<=Ringtones.size();i++){
            ArrayList<Color> color = new ArrayList<Color>();

            color = new ArrayList<Color>();

            color.add(new Color(" ", "", true));

            colors.add(color);}
            expListAdapter = new ColorAdapter(this, GrouppList, colors);
        //  setListAdapter(expListAdapter);
            exlv1=(ExpandableListView) findViewById(R.id.expandableListView1);
            this.exlv1.setAdapter(expListAdapter);
            //exlv1.setAdapter(expListAdapter);
            this.exlv1.setOnItemClickListener(new OnItemClickListener() {
//THIS METHOD NOT WORKING FOR ME
                @Override
                public void onItemClick(AdapterView<?> aview, View v,
                        int position, long id) {
                    Toast.makeText(FindFilesByType.this, "position "+position, Toast.LENGTH_LONG).show();//THIS DOESNOT WORKING
                    // TODO Auto-generated method stub

                }
            });


        }

    } catch (Exception e) {
        Toast.makeText(this, "Error " + e.toString(), Toast.LENGTH_LONG)
                .show();
        Log.i(LOG_TAG, e.toString());
    }

i am using expandable list but i want know position of which item is clicked by user
i have used onitemclick but it doesn't show me msg..
what wrong i am doing?

public void funName(){
    File ringtones_directory = new File(DIRECTORY);
    if (!ringtones_directory.exists()) {
        AlertDialog.Builder ad = new AlertDialog.Builder(
                FindFilesByType.this);
        ad.setTitle("Directory Not Found");
        ad.setMessage("Sorry! The ringtones directory doesn't exist.");
        ad.setPositiveButton("OK", null);
        ad.show();

        hasErrors = true;
    }

    if (!ringtones_directory.canRead()) {
        AlertDialog.Builder ad = new AlertDialog.Builder(
                FindFilesByType.this);
        ad.setTitle("Permissions");
        ad
                .setMessage("Sorry! You don't have permission to list the files in that folder");
        ad.setPositiveButton("OK", null);
        ad.show();
        hasErrors = true;
    } else {
        Ringtones = FindFiles(false);

        if (Ringtones.size() < 1) {
            AlertDialog.Builder ad = new AlertDialog.Builder(
                    FindFilesByType.this);
            ad.setTitle("Permissions");
            ad.setMessage("Sorry! No ringtones exists in " + DIRECTORY
                    + ".");
            ad.setPositiveButton("OK", null);
            ad.show();
            Log.e(LOG_TAG, "No ringtones were found.");
            hasErrors = true;
        }

    }

    try {

        if (!hasErrors) {
            // refreshList();
            // this.lv1.setAdapter(new ArrayAdapter<String>(
            // FindFilesByType.this, android.R.layout.test_list_item,
            // Ringtones));
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    FindFilesByType.this, android.R.layout.test_list_item,
                    Ringtones);
            ArrayList<String> GrouppList = new ArrayList<String>();
            GrouppList.addAll(Ringtones);
            ArrayList<ArrayList<Color>> colors = new ArrayList<ArrayList<Color>>();
            for(int i=0;i<=Ringtones.size();i++){
            ArrayList<Color> color = new ArrayList<Color>();

            color = new ArrayList<Color>();

            color.add(new Color(" ", "", true));

            colors.add(color);}
            expListAdapter = new ColorAdapter(this, GrouppList, colors);
        //  setListAdapter(expListAdapter);
            exlv1=(ExpandableListView) findViewById(R.id.expandableListView1);
            this.exlv1.setAdapter(expListAdapter);
            //exlv1.setAdapter(expListAdapter);
            this.exlv1.setOnItemClickListener(new OnItemClickListener() {
//THIS METHOD NOT WORKING FOR ME
                @Override
                public void onItemClick(AdapterView<?> aview, View v,
                        int position, long id) {
                    Toast.makeText(FindFilesByType.this, "position "+position, Toast.LENGTH_LONG).show();//THIS DOESNOT WORKING
                    // TODO Auto-generated method stub

                }
            });


        }

    } catch (Exception e) {
        Toast.makeText(this, "Error " + e.toString(), Toast.LENGTH_LONG)
                .show();
        Log.i(LOG_TAG, e.toString());
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的背包 2024-11-18 18:14:06

尝试以下方法来处理单击子项时的情况:

exlv1.setOnChildClickListener(new OnChildClickListener() {
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
            int childPosition, long id) {

    }
};

Try this to handle when a child is clicked:

exlv1.setOnChildClickListener(new OnChildClickListener() {
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
            int childPosition, long id) {

    }
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文