我的应用程序的目的是搜索一首歌(deezer sdk)并在gridView中显示搜索结果。我希望能够拥有专辑的封面和下面的“艺术家 - 标题”。由于“艺术家头衔”可能有时很长,我希望能够横向滚动它。我在互联网上看到我必须将项目设置为“focusable = false”,但这似乎没有改变任何东西。 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>
我知道这可能不是最好的方法,但这是我设法做到的唯一方法。 我的适配器工作完美,因为专辑封面按预期显示,艺术家名称也很有效。
这是我的活动中的setOnItemClickListener:
gridview.setAdapter(songSelection_adapter_listAdapter);
gridview.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
{
Log.i("onItemClickListener", "CLICK!");
}
});
这不会打印“点击!”在logcat中,没有任何反应。 我尝试过使用“onTouchListener”,效果很好,但是我无法向下滚动gridView :(
感谢您的帮助。
答案 0 :(得分:1)
为其适配器中的GridView项设置ItemClickListener
,而不是直接为GridView设置ItemClickListener。