0

Google の指示に従って、単一行のコンテキスト アクション バーを実装しました。OnLongClickListener説明では、各ビューにを追加するように指示されています。私は を使用しているため、次の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場所もあるため、ユーザーは複数の行を選択でき、通常の行のクリックは正常に機能します。MultiChoiceModeListenerChoiceModeCHOICE_MODE_MULTIPLE_MODAL

4

0 に答える 0