android - isEnabled() 与适配器 Android

标签 android listview isenabled

我正在使用下面的代码来禁用 ListView 项目。现在,问题是在禁用一个项目后,如果用户单击另一个项目,它会禁用当前项目,但会从禁用中删除最后一个项目。

如何预防这个问题?

    int pos;
    SimpleAdapter adapter = new SimpleAdapter(this, arrlist, R.layout.topicwisequestion, new String[] { "option" }, new int[] { R.id.option }) {

                public boolean isEnabled(int position) {
                    if (position != 0) {
                        if (position == pos) {
                            return false;
                        } else {
                            return true;
                        }
                    } else {
                        return true;
                    }
                }
            };

            lvTWOptions.setAdapter(adapter);

            lvTWOptions.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                    pos = position;
                }
            });

最佳答案

您需要维护禁用项目的列表,并查看该项目是否存在于 isEnabled 的列表中。

如下:

ArrayList<Integer> pos=new ArrayList<Integer>();
    SimpleAdapter adapter = new SimpleAdapter(this, arrlist, R.layout.topicwisequestion, new String[] { "option" }, new int[] { R.id.option }) {

                public boolean isEnabled(int position) {
                    if (position != 0) {
                        if (pos.contains(position)) {
                            return false;
                        } else {
                            return true;
                        }
                    } else {
                        return true;
                    }
                }
            };

            lvTWOptions.setAdapter(adapter);

            lvTWOptions.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {

                    pos.add(position);
                }
            });

关于android - isEnabled() 与适配器 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197898/

相关文章:

android - 如何在android中使用移动到 ListView 中的选定项目?

android - 我应该将应用程序中现有的 Listview 更改为 RecyclerView 吗?

wpf - 文本框的自定义模板在 IsEnabled = false 上的行为不符合我的要求

jquery - 检查:enabled state of $(this) element in jQuery

android - 如何在应用程序关闭时执行一段代码?

android - 亚行将不会运行

android - ExoPlayer 停止/暂停不起作用

java - Android-根据特定条件跳过View pager中的页面

android - ListView 游标适配器,总是在点击时获得第一项

c# - 禁用按钮上的 "IsEnabled=false"颜色更改?