gridView에 OnItemClickListener
을 구현하고 싶습니다.GridView OnItemClickListener가 cardView와 작동하지 않습니다.
나는 나의 조각처럼 리스너를 정의
GridView gridview = (GridView)view.findViewById(R.id.gridview);
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("imagedata","Position clicked: "+ position);
}
});
List<ItemObject> allItems = ((MainActivity) getActivity()).getTinkeractivities(); //getJSON data
CustomAdapter customAdapter = new CustomAdapter(getActivity(), allItems, "home");
gridview.setAdapter(customAdapter);
gridView
의 각 항목에 대한 나의 레이아웃은 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="4dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp">
<ImageView
android:id="@+id/screen_shot"
android:layout_width="80dp"
android:layout_height="80dp"
android:contentDescription="@string/hello_world"
android:layout_alignParentTop="true"
android:scaleType="centerCrop"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/activity_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/screen_shot"
android:layout_alignLeft="@+id/screen_shot"
android:text="@string/hello_world"
android:inputType="text"
android:textColor="#000"
android:layout_marginTop="8dp"
android:textSize="12sp"/>
<TextView
android:id="@+id/theme_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/activity_name"
android:layout_alignLeft="@+id/activity_name"
android:text="@string/hello_world"
android:textSize="12sp"
android:layout_marginTop="4dp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
그러나, 클릭 리스너가 될 것 같지 않습니다 일. 나는 카드보기의 모든 자식보기에서 android:clickable
을 false
으로 설정하고 카드보기 자체에서 false
으로 설정하려했지만 성공하지 못했습니다.
각 행 뷰에 대해 내 CustomAdapter
에 클릭 수신기를 설정할 수 있지만 표준 구현을 사용하여 custom action bar을 사용하여 일부 일괄 처리 선택을 수행하고 싶지 않으므로이 방법을 사용하고 싶지 않습니다. 그렇지 않으면 나는 longPress
이벤트로 주위를 어지럽히고 내 행 항목에 대해 checked
상태를 가지고 어댑터 내에서 사용자 지정 작업 표시 줄을 구현하는 데 어려움을 겪습니다.
깨끗한 구현을 위해 내 조각에 click
수신기를 정의하고자합니다. Stackoverflow에 대한 여러 블로그 게시물과 관련 답변을 모두 읽었습니다. 어댑터 접근 방식을 제안하고 아무 것도하지 않고 액티비티 나 프래그먼트에서 올바르게 작동하는 방법을 지정하지 않았습니다.
필자의 경우 OnItemClickListener
을 설정하는 것이 불가능한 지 알고 싶습니다. 그렇다면 어떻게 디버깅을하고 문제를 해결할 수 있습니까?
'Rel'안에'CardView' 줄 바꿈 가능 ativeLayout'입니다. 그게 효과가있다. –
카드 뷰에 선형 레이아웃을 사용합니다. –
@VoraAnkit, 방금 게시 한 질문에 대한 반복이 아닙니다. OP는 gridView 구현에서 하위 항목에 대한 다른 클릭 수신기를 갖기를 원합니다. 내 격자보기에 대한'OnItemClickListener'를 구현하고 싶습니다. 문제는 카드보기 때문에 불려지지 않는다는 것입니다. 레이아웃에있는 다른 요소, 즉'ImageView'와'TextView'는 내가 추측 한 행의 클릭 가능성을 방해해서는 안됩니다. –