在主要活动

时间:2017-07-20 09:57:37

标签: android listview android-view visibility

在我的OnItemLongClick中,我需要设置GONEVISIBLE的复选框的可见性。

bookList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
            if (!inSelectMode) {
                inSelectMode = true;
                myAdapter.setCheckMode(true);
                CheckBox checkBox = view.findViewById(R.id.checkBox);
                if (checkBox.isEnabled()) {
                    checkBox.performClick();
                }
                int books = myAdapter.getCheckCount();
               // totalSelected.setVisibility(View.VISIBLE);
               // totalSelected
               // .setText("You've selected " + ((books == 0) ? "no" : Integer.toString(books)) + ((books == 1) ? " book" : " books"));
            }
            return true;
        }
    });

取消注释totalSelected.setVisibility()后,包含setCheckMode()的方法checkBox.setVisibility()无效。没有错误,它只是没有做任何事情。 totalSelected是我的活动中的textViewcheckBox是我CheckBox的行布局中的ListView。将两个视图一起使用时是否存在某种问题(因为一个在我的activity.xml中,另一个在我的rowlayout.xml中)?如果是这样我该如何解决这个问题呢?

我的适配器的相关部分:

public void setCheckMode(boolean checkMode) {
    Log.d("setCheckMode :",checkMode?" true":" false");
    this.isCheckMode = checkMode;
    notifyDataSetChanged();
    if(!checkMode){
        checker.isAnyChecked(false);
        checkCount = 0;
    }
}

-

public void bindView(View v, Context context, Cursor cursor) {
     Log.d("bindView :", cursor.getString(1));

    final CheckBox checkBox = (CheckBox) v.findViewById(R.id.checkBox);
    Log.d("BindView isCheckMode?:",isCheckMode ? "true" : "false");
    if(isCheckMode){
        checkBox.setVisibility(View.VISIBLE);
        Log.d("checkbox visibility :","visible");
    }
    else{
        checkBox.setVisibility(View.GONE);
        Log.d("checkbox visibility","gone");
    }

    if (!isCheckMode){
        Log.d("setChecked :","false");
        checkBox.setChecked(false);
    }

0 个答案:

没有答案