私は複数選択モードのリスナーを実装するGridViewを持っており、ユーザがアイテムをタップするたびに背景イメージを変更する必要があります。長時間タップすると、多肢選択ツールバーが表示されます。getView()メソッドのonClickListenerがMultiChoiceModeListener()を駄目にします
しかし、私はgetView()でクリックリスナーを使用しているので、何とか他のものをブロックします。
(私はgetViewメソッド(からリスナーを削除した場合)、もう一つはうまく動作します)
任意のアドバイス?
は、ここに私のコードです:
MultiChoiceListener:
gView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
checkedPos = new SparseBooleanArray();
gView.setMultiChoiceModeListener(new GridView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
currentArray = gView.getCheckedItemPositions();
int itemCount = gView.getCheckedItemCount();
switch (itemCount){
case 1:
mode.setSubtitle("One item selected.");
break;
default:
mode.setSubtitle(itemCount + " items selected.");
break;
}
...
getViewメソッド():
convertView.setLongClickable(true);
final Holder finalHolder = holder;
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!pressed) {
finalHolder.img.setBackground(ContextCompat.getDrawable(context, R.drawable.ic_pause_bg));
pressed = true;
}
else{
finalHolder.img.setBackground(ContextCompat.getDrawable(context, R.drawable.ic_noise_bg));
pressed = false;
}
}
});
お時間をいただき、ありがとうございます!