Целью моего приложения является поиск песни (deezer sdk) и отображение результата поиска в gridView. Я хочу, чтобы у вас была обложка альбома и «Исполнитель - название» чуть ниже. Поскольку «название исполнителя» может когда-то быть очень длинным, я хочу, чтобы он мог прокручивать его по горизонтали. Я видел в Интернете, что мне пришлось установить элемент как «focusable = false», но это ничего не меняет. XML, из элементов внутри моего GridView выглядит следующим образом:ItemClickListener on GridView не работает
<?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 вниз :(
Спасибо за вашу помощь.
Что не так с методом op? – Raghunandan
Ну ... Я поместил слушателя внутри getView() моего пользовательского адаптера, и он работает. Единственное, что он срабатывает только тогда, когда я нажмите на изображение, а не на ячейку полного gridview. Хотя, я согласен с raghynandan, я не понимаю, почему он не работает в этой деятельности (везде на th e internet Я видел слушателя в действии: x) –
Если вы не хотите, чтобы адаптер знал, что происходит при щелчке по элементу, это не очень хороший подход. –