2014-09-07 3 views
0

Как я могу поймать onClick событий в нескольких дочерних представлениях элемента списка в ListFragment с пользовательскими Adapter?Catching onClick события в дочернем представлении элемента списка

Я хочу событие onClick, чтобы вернуть идентификатор элемента и идентификатор дочернего элемента.

Мой список предмет расположение.

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:id="@+id/event_status" /> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="7dp" 
     android:nestedScrollingEnabled="false"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/event_members" /> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/event_date"/> 
    </LinearLayout> 
</LinearLayout> 

Я хочу, чтобы поймать кликов по event_status и event_members отдельно.

+0

просто. ручка 'onClikListener' в самом адаптере – NullPointerException

+0

heloo Doctor..lol..хорошо, это хорошая репутация, которую вы получили там - (образно и буквально) -ознаваемое программирование на ум - lol..you должно быть googled lil..lol – Elltz

+0

Да, но я googled, ни один из ответов здесь не отвечает на мой вопрос. –

ответ

0

Вы можете сделать это, как этот

private class YourAdapter extends ArrayAdapter<...> 
{ 
      TextView event_date = (TextView) convertView.findViewById(R.id.event_date); 
      event_date.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

       } 
      }); 

      TextView event_members = (TextView) convertView.findViewById(R.id.event_members); 
      event_date.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

       } 
      }); 
    } 

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

@Override 
    public void onListItemClick(ListView l, View v, int position, long id) { 
       // the same two handler here 
       TextView event_members = (TextView) convertView.findViewById(R.id.event_members); 
       event_date.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 

        } 
       }); 
    } 
0

I mannaly use android left side menu, которое управляет различными фрагментами, нажимая на пользовательский адаптер https://developer.android.com/training/implementing-navigation/nav-drawer.html

Я думаю, что самое интересные для вас

myList.setOnItemClickListener(new myItemClickListener()); 

затем

private class myItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // your code 
    } 
} 

Надеется, что это может помочь

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