【问题标题】:Disable changing of checkbox in listView android禁用listView android中复选框的更改
【发布时间】:2016-04-01 06:18:13
【问题描述】:

是否可以禁用用户单击 android 中 listView 中的复选框项目?我有一个 listView 程序决定检查和不检查的内容,我不希望用户更改复选框的状态。有没有简单的方法可以做到这一点?

我尝试将 setClickable 设置为 false,但没有成功。

谢谢

【问题讨论】:

  • 如果您不希望用户选中和取消选中它,请不要使用CheckBox。使用其他东西(例如图标)来指示选中和未选中状态。

标签: android listview checkbox android-listview


【解决方案1】:

您不想让用户设置checkbox 的值,那么只需使用这个: checkbox.setenabled(false)xml 中的等效项

http://developer.android.com/reference/android/widget/TextView.html#setEnabled(boolean)

【讨论】:

    【解决方案2】:

    CommonsWare 的评论当然是正确的 - 如果用户无法实际与之交互,则不应使用复选框,这会让您的用户感到困惑。

    但是,直接回答您的问题应该只是使用checkbox.setEnabled(false) 的问题。当然,您需要对每一行都执行此操作。

    当然,另一种选择是使用颜色或图标来指示您的状态。背景颜色只需要列表视图上的正确颜色状态列表 (android:listSelector="@drawable/selection_state_drawable"),而对于图标,只需覆盖 getView。大致如下:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.my_layout, parent, false);
        }
        MyItemType data = getItem(position);
        ImageView checkImage = (ImageView) convertView.findViewById(R.id.state_icon);
        checkImage.setImageResource( data.isSelected()? R.drawable.ic_selected : R.drawable.ic_not_selected ) {
        return convertView;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多