2015-05-20 3 views
-1

Я работаю над приложением Android, в котором я использую ViewGroup, чтобы показать свой нижний колонтитул в моем списке. Теперь я хочу создать событие listener для этой группы представлений, чтобы пользователь мог нажать этот нижний колонтитул. Мой код, чтобы сделать нижний колонтитул и группу просмотра ниже, вместе с xml.Clicklistener for View Group Android

ViewGroup footer = (ViewGroup) getLayoutInflater().inflate(R.layout.footer_view, mListView, false); 
        View header = getLayoutInflater().inflate(R.layout.footer_view, null); 
        Button headerButton = (Button)header.findViewById(R.id.footerRefreshBtn); 
        mListView.addFooterView(footer); 

        headerButton.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          Toast.makeText(context, "I am clicked", Toast.LENGTH_LONG).show(); 
         } 
        }); 
// It is not showing toast message on click. 

XML для колонтитула:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clickable="true" 
    android:orientation="vertical" > 

<Button 
    android:id="@+id/footerRefreshBtn" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:layout_gravity="center_horizontal" 
    android:text="Refresh Button" 
    android:textColor="@color/white" 
    android:background="@color/gray" /> 

</LinearLayout> 
+1

И проблема в этом? –

+0

@XaverKapeller спасибо за ваш ответ. Я использую вышеуказанный код, но группа просмотра не может быть нажата. Ничего не происходит, когда я щелкнул по нему. Пожалуйста, помогите мне здесь –

+0

Почему вы используете 'addFooterView (View, Object, boolean)'? Просто используйте 'addFooterView (View)'. Я думаю, что это источник ошибки. Или, более конкретно, «false» в конце, но я не уверен, просто попробуйте 'addFooterView (View)'. –

ответ

1

я не мог узнать, как setOnClickListener к сноске, но я нашел другое решение. Я думаю, вы могли бы использовать это, просто найдите footerRefreshBtn и установите OnClickListener кнопки только до или после добавления нижнего колонтитула. Оба способа работают.

LayoutInflater inflater = getLayoutInflater(); 
    ViewGroup footer = (ViewGroup) inflater.inflate(R.layout.footer, mListView, false); 

    mListView.addFooterView(footer, null, false); 

    mListView.setAdapter(mAdapter); 

    Button footerRefreshBtn = (Button) footer.findViewById(R.id.footerRefreshBtn); 

    footerRefreshBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(MainActivity.this, "I am clicked", Toast.LENGTH_LONG).show(); 
     } 
    }); 

Таким образом, вы назначаете событие onClick Button.

Тем не менее, если вы все еще хотите установить onClickListener на весь нижний колонтитул, вы можете получить макет нижнего колонтитула и установить onClickListener в этот макет, используя метод, упомянутый выше.

+0

Большое вам спасибо .. Это работает .. –