2016-12-01 13 views
1

작동합니다. GridView에 대한 포커스가 리모컨으로 변경되거나 항목을 클릭 할 때 다른 리스너가 호출되지 않습니다.어느 setOnItemSelectedListener도 setOnClickListener는의 GridView는 다음과 같다의 GridView

아무도 청취자를 작동시키는 방법에 대한 팁을 제공 할 수 있습니까?
GirdView의 다른 모든 기능이 예상대로 작동합니다.

편집 :

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="0dp" 
    android:layout_gravity="center" 
    android:id="@+id/biyee_relativeLayoutRoot"> 

    <ImageButton 
     android:id="@+id/imageButton" 
     android:background="@drawable/button_background" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:contentDescription="snapshot" 
     android:layout_gravity="center" 
     android:scaleType="fitXY" 
     android:adjustViewBounds="true" 
     android:layout_margin="0dp" 
     android:padding="10dp" 
     android:src="@drawable/ic_launcher" 
     android:onClick="onClick_imageButton"/> 

    <LinearLayout 
     android:id="@+id/linearLayoutCaption" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/black_overlay" 
     android:orientation="vertical" 
     android:layout_margin="10dp" 
     android:padding="5dp"> 

     <TextView 
      android:id="@+id/textViewName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="top" 
      android:text="Name" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textViewModel" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Model" 
      android:textAppearance="?android:attr/textAppearanceSmall"/> 

     <TextView 
      android:id="@+id/textViewTime" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:text="Time" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/textViewPosition" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:text="n" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:layout_margin="15dp"/> 

</FrameLayout> 

편집 (2) : 다음은 각 격자 셀에 대한 레이아웃 다니엘 누젠트의 the tip , 나는에 대한 사용자 정의 항목보기 레이아웃에서하여 ImageButton을 제거 테스트 목적 및 OnItemSelectedListener가 완벽하게 작동하기 시작했습니다. 따라서 범인은 ImageButton입니다. 클릭 가능한 객체가 OnItemSelectedListener를 망칠 것으로 보입니다.

편집 (3) : 시험을 위해서, 나는 사용자 정의 항목보기에 대해 다음과 같은 레이아웃을 사용 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="300dp" 
    android:layout_height="300dp" 
    android:orientation="vertical" 
    android:background="@color/red"> 

</LinearLayout> 

완벽하게 작동 OnItemSelectedListener하지만, OnClickListener를하고 OnItemClickListener 내가 여부에 상관없이 호출되지 않습니다 마우스 또는 리모컨을 사용하여 항목을 클릭하십시오. 당신이 화살표 또는 다른 것 같은 선택의 어떤 종류를 구현하는 경우

+0

'onItemSelectedListener()'대신'onItemClickListener()'가 필요하다고 생각합니다. – Opiatefuchs

+0

불행하게도 GridView에는 setOnItemClickedListener가 없습니다. AdapterView.onItemSelectedListener는 없습니다. – Hong

+0

GridView에는 onItemClickListener()가 없습니다. API가 속지 는가? https://developer.android.com/guide/topics/ui/layout/gridview.html – Opiatefuchs

답변

0

하는 시도 일을 할 것입니다 OnItemClickListener 대신

gridview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
       //Your Logic here 
     } 
); 

onItemSelectedListeneronItemSelectedListener의 사용. 이 뷰에서 항목 가 선택되면 developer.android.com

콜백 방법과

가 호출된다. 이 콜백은 새로 선택한 위치가 이전에 선택한 위치와 다른 경우 또는 에 선택한 항목이없는 경우에만 호출됩니다.

임팩 멘터는 이 선택한 항목과 관련된 데이터에 액세스해야하는 경우 getItemAtPosition (위치)을 호출 할 수 있습니다.

+0

대출 해 주셔서 감사합니다. GridView에는 setOnItemClickedListener가 없습니다. AdapterView.onItemSelectedListener는 없습니다. 포커스가 한 항목에서 다른 항목으로 이동하면 리스너가 호출되기를 원합니다. – Hong

+0

@ 실제로 다른 항목을 선택 하시겠습니까? – Sid

+0

@Hong GridView에는 다음과 같은 OnItemClickListener 체크 아웃이 있습니다. https://developer.android.com/guide/topics/ui/layout/gridview.html – Sid