0

按照 Google 的说明实现了一个单行上下文操作栏。说明说要向OnLongClickListener每个视图添加一个,并且由于我使用的是 a CustomAdapter,因此我使用以下代码在每一行上实现了它:

   @Override
   public View getView(final int position, View convertView, final ViewGroup parent) {
       final ViewHolder holder;
       final View tempView = convertView;

        if (convertView == null) {
            holder = new ViewHolder();

                convertView.setOnLongClickListener(new View.OnLongClickListener() {

                public boolean onLongClick(View view) {
                    if (mActionMode != null) {
                        return false;
                    }

                    mActionMode = getSherlockActivity().startActionMode(mActionModeCallback);
                    view.setSelected(true);
                    return true;
                }
            });
        }
    }

但是,使用该代码会禁用正常点击,因此我OnClickListener在每个视图中添加了一个:

    convertView.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {

                tempView.setBackgroundColor(getResources().getColor(R.color.blue));

                final Intent details = new Intent(this, Details.class);
                startActivity(details);
            }
    }); 

这或多或少有效,但看起来很老套,背景颜色的变化不像正常的那样“平滑”。我还有另一个ListView我正在使用 aMultiChoiceModeListener并设置ChoiceModeto 的地方CHOICE_MODE_MULTIPLE_MODAL,因此用户可以选择多行,并且正常的行单击工作正常。

4

0 回答 0