2014-05-23 5 views
1

Я пытаюсь реализовать gridview внутри навигационного ящика. Сетка видна отлично; даже когда я касаюсь элемента gridview, он показывает фокус. Но клик не обнаружен. Пожалуйста, помогите ... Это проблема с навигационным ящиком ??? Я имею ввиду, что вид сетки не работает в навигации?GridView onClickListener не работает

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<FrameLayout 
    android:id="@+id/drop" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_toRightOf="@+id/left_drawer" > 
</FrameLayout> 

<RelativeLayout 
    android:id="@+id/left_drawer" 
    android:layout_width="290dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="#373737" 
    android:choiceMode="singleChoice" 
    android:divider="#666" 
    android:dividerHeight="1dp" 
    android:paddingLeft="1dp" 
    android:paddingRight="1dp" > 

    <RelativeLayout 
     android:id="@+id/box1" 
     android:layout_width="wrap_content" 
     android:layout_height="50dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_weight="1" > 

     <ImageView 
      android:id="@+id/pref" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/pref" /> 

     <ImageView 
      android:id="@+id/temp_icon" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/temp" /> 

     <View 
      android:id="@+id/sep1" 
      android:layout_width="4px" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="15dp" 
      android:layout_marginTop="15dp" 
      android:layout_toRightOf="@+id/temp_icon" 
      android:background="#3bb9ff" /> 

     <View 
      android:id="@+id/sep2" 
      android:layout_width="4px" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="15dp" 
      android:layout_marginRight="3dp" 
      android:layout_marginTop="10dp" 
      android:layout_toLeftOf="@+id/pref" /> 

     <TextView 
      android:id="@+id/temp_txt" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="3dp" 
      android:layout_toLeftOf="@+id/sep2" 
      android:layout_toRightOf="@+id/sep1" 
      android:text="100 C" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <TextView 
      android:id="@+id/extra_info" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/temp_txt" 
      android:layout_alignParentBottom="true" 
      android:layout_alignRight="@+id/temp_txt" 
      android:layout_below="@+id/temp_txt" 
      android:text="This is extra info panel make some usefull and put here" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </RelativeLayout> 

    <View 
     android:id="@+id/sep4" 
     android:layout_width="wrap_content" 
     android:layout_height="1px" 
     android:layout_below="@+id/box1" 
     android:layout_marginTop="4dp" 
     android:background="#222222" /> 

    <ScrollView 
     android:id="@+id/box2" 
     android:layout_width="wrap_content" 
     android:layout_height="70dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/box1" 
     android:layout_marginTop="10dp" 
     android:layout_weight="1" 
     android:scrollbars="horizontal" > 
    </ScrollView> 

    <View 
     android:id="@+id/sep5" 
     android:layout_width="wrap_content" 
     android:layout_height="1px" 
     android:layout_below="@+id/box2" 
     android:layout_marginBottom="5dp" 
     android:layout_marginTop="5dp" 
     android:background="#222222" /> 

    <RelativeLayout 
     android:id="@+id/box3" 
     android:layout_width="wrap_content" 
     android:layout_height="150dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/sep5" > 
    </RelativeLayout> 

    <View 
     android:id="@+id/sep6" 
     android:layout_width="wrap_content" 
     android:layout_height="1px" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/box3" 
     android:layout_marginBottom="7dp" 
     android:background="#222222" /> 

    <RelativeLayout 
     android:id="@+id/box3333" 
     android:layout_width="wrap_content" 
     android:layout_height="60dp" 
     android:layout_alignLeft="@+id/sep6" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/box3" 
     android:layout_marginBottom="3dp" 
     android:layout_marginTop="3dp" > 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_marginBottom="2dp" 
      android:layout_marginTop="2dp" 
      android:src="@drawable/img_btn_play" /> 

     <ImageView 
      android:id="@+id/imageView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="25dp" 
      android:layout_toRightOf="@+id/imageView1" 
      android:src="@drawable/img_btn_previous" /> 

     <ImageView 
      android:id="@+id/imageView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/imageView2" 
      android:layout_marginRight="14dp" 
      android:layout_toLeftOf="@+id/imageView1" 
      android:src="@drawable/img_btn_previous" /> 
    </RelativeLayout> 

    <View 
     android:id="@+id/sep9" 
     android:layout_width="wrap_content" 
     android:layout_height="1px" 
     android:layout_below="@+id/box3333" 
     android:layout_marginBottom="3dp" 
     android:layout_marginTop="3dp" 
     android:background="#222222" /> 

    <GridView 
     android:id="@+id/scrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/sep9" 
     android:clickable="true" 
     android:columnWidth="50dp" 
     android:gravity="center" 
     android:horizontalSpacing="10dp" 
     android:numColumns="auto_fit" 
     android:paddingBottom="30dp" 
     android:stretchMode="columnWidth" 
     android:verticalSpacing="10dp" > 
    </GridView> 
</RelativeLayout> 

</android.support.v4.widget.DrawerLayout> 

Вот мой код

GridView gridView = (GridView) contentView 
      .findViewById(R.id.scrollView1); 
    Bitmap[] ic = JsonLibrary.saved_ps_bitmap(getApplicationContext()); 
    gridView.setAdapter(new GridAdapter(getApplicationContext(), ic)); 
    gridView.setOnItemClickListener(this); 
     gridView.setOnItemClickListener(new OnItemClickListener() 
     { 
      @Override 
      public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
       Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG) 
       .show(); 
     } 
    }); 

ответ

0

Попробуйте добавить в качестве слушателя к классу. Позвольте мне знать, если это что-то для вас.

+0

да теперь его работая спасибо .... –

0

Это может быть неправильное понимание между слушателями. В вашем xml у вас есть android:clickable="true", который ссылается на слушателя onClick, и вы объявляете двух слушателей onItemClick на GridView во время выполнения.

Вы должны удалить этот атрибут:

android:clickable="true" 

удалить Также эту строку:

gridview.setOnItemClickListener(this); 

Это последний не требуется, потому что вы объявляете правильную сразу после него. Тогда дуп не нужен.

Чтобы понять, когда вы используете this в качестве параметра, вы вызываете реализацию деятельности, которая должна быть:

public class A extends Activity implement OnItemClickListener { } 

Но если вы объявите этот щелчок слушателя непосредственно на GridView и не внутри деятельности, это бесполезно.

+0

он работает сейчас ... Спасибо –

Смежные вопросы