Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GridView上的ItemClickListener不工作_Android_Gridview_Listener_Adapter_Onitemclicklistener - Fatal编程技术网

Android GridView上的ItemClickListener不工作

Android GridView上的ItemClickListener不工作,android,gridview,listener,adapter,onitemclicklistener,Android,Gridview,Listener,Adapter,Onitemclicklistener,我的应用程序的目的是搜索歌曲(deezer sdk),并在gridView中显示搜索结果。我希望能够有专辑的封面和“艺术家头衔”就在下面。由于“艺术家标题”有时可能很长,我希望能够水平滚动它。我在互联网上看到,我必须将项目设置为“focusable=false”,但这似乎没有改变任何事情。 my gridview中项目的XML如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="htt

我的应用程序的目的是搜索歌曲(deezer sdk),并在gridView中显示搜索结果。我希望能够有专辑的封面和“艺术家头衔”就在下面。由于“艺术家标题”有时可能很长,我希望能够水平滚动它。我在互联网上看到,我必须将项目设置为“focusable=false”,但这似乎没有改变任何事情。 my gridview中项目的XML如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridView_topLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<ImageView
    android:id="@+id/gridView_image"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:contentDescription="@string/gridTextView_Album"
    android:src="@drawable/album_cover_default" />

<HorizontalScrollView
    android:id="@+id/gridView_horizontalScroll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:clipChildren="true"
    android:fillViewport="true"
    android:scrollbars="none" >

    <RelativeLayout
        android:id="@+id/gridView_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false" >

        <TextView
            android:id="@+id/gridView_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:isScrollContainer="true"
            android:singleLine="true" />
    </RelativeLayout>
</HorizontalScrollView>

我知道这可能不是最好的方法,但这是我唯一能做到的方法。 我的适配器工作得很好,因为专辑的封面显示得很好,艺术家的名字也很好

这是我的活动中的SetonicClickListener:

gridview.setAdapter(songSelection_adapter_listAdapter);
gridview.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
{
    Log.i("onItemClickListener", "CLICK!");
}
});
gridview.setAdapter(songSelection\u adapter\u listapter);
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3)
{
Log.i(“单击侦听器”、“单击!”);
}
});
这不会在logcat中打印“click!”,不会发生任何事情。 我试过使用“onTouchListener”,它工作得很好,但我无法向下滚动我的gridView:(


感谢您的帮助。

在它的适配器中为GridView的项设置
ItemClickListener
,而不是直接为GridView设置ItemClickListener。

好吧……我将侦听器放在getView()中我的自定义适配器,它可以工作。唯一的问题是,它只在我单击图像时触发,而不是在整个gridview的单元格上。虽然我同意raghynandan的观点,但我不明白为什么它在活动中不工作(在互联网上的任何地方,我都看到活动中的侦听器:x)如果您不想让适配器知道单击项目时会发生什么,那么这不是一个好方法。