나는 ListFragment
과 간단한 ArrayAdapter
이 연관되어 있습니다. 리스트 뷰는 체크 할 항목의 목록을 보유하고 있으며 다음의 XML 레이아웃은 다음과 같습니다ListFragment에 대한 다중 선택 컨텍스트 동작 표시 줄 (문제 있음)
<ListView android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:layout_marginLeft="2mm"
android:layout_marginRight="2mm"
android:drawSelectorOnTop="false"
android:longClickable="true"
android:choiceMode="multipleChoiceModal"/>
당신이 볼 수 있듯이, 나는 XML 레이아웃에서 long-clickable
및 choicemode
속성을 설정했습니다.
ListFragment
의
onViewCreated
콜백에서 적절한 청취자를 설정합니다
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListView list_view = getListView();
list_view.setMultiChoiceModeListener(this);
list_view.setOnItemLongClickListener(this);
}
내 ListFragment
는 그 청취자의 콜백을 구현하고 있기 때문에 리스너 매개 변수로 this
전달합니다. onItemLongClick
가 호출되지 않습니다 것을, 첫째
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id
{
activity.startActionMode(this);
return true;
}
:
이
내가 문제를 데 콜백입니다. 그러나 목록 항목을 길게 클릭하면 컨텍스트 별 작업 표시 줄 (CAB)이 시작되고 완벽하게 작동합니다!실제로이 CAB는 이 콜백없이 시작됩니다. 내 콜백은 activity.startActionMode(this)
을 사용하는데 CAB가 표시되지만 목록의 항목을 쉽게 확인할 수는 없습니다 (필자는 다른 곳에서도이 테스트를 실시했습니다).
어떻게 CAB을 시작하고 목록 항목을 쉽게 확인할 수 있도록 긴 클릭을 프로그래밍 방식으로 처리합니까?
나는 주제에 제시된 방법을 사용하고 있습니다 (onLongClickListener는 사용하지 않았지만 사용하지 않았습니다). 작동하지 않는 것 같습니다.