如何在Android的Expandablelistview中为组项实现不同的clicklistener?

时间:2013-10-12 14:43:44

标签: android expandablelistview

所以我的expandablelistview看起来像(抱歉,我不能发布图片,我的声誉少于10)。在组项目布局文件中,我有一个textview&像这样的一个imageview:

Textview         Imageview(info icon)
Textview         Imageview(info icon)

我想要的是点击右侧的信息图标,它应该显示吐司几秒钟,提供有关此组的信息。如果我点击textview,它应该正常展开,在它下面显示子项。

我的2个布局文件如下所示: Mainlayout.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

      <ExpandableListView
          android:id="@+id/lvexp"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:groupIndicator="@null"
          android:background="@drawable/back">
     </ExpandableListView>

</RelativeLayout>

GroupLayout.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:orientation="horizontal" >

<TextView
    android:id="@+id/lblheader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="Large Text"
    android:layout_weight="1.0"
    android:gravity="center"
    android:paddingTop="12dp"
    android:paddingBottom="12dp"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#24B9FF" />

<ImageView
    android:id="@+id/help_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/info_icon"
    android:layout_weight=".1"
     android:paddingTop="12dp"
     android:clickable="true"
    android:paddingBottom="12dp" />

我如何处理点击imageview以显示toast。我已经实现了onGroupClick&amp;我可以在click上扩展组。但是我如何为Imageview实现点击监听?

请帮忙。我没有其他选择,只能在app中使用Expandablelistview。

1 个答案:

答案 0 :(得分:1)

如何将此groupLayout xml附加到您的适配器...实际上您必须在getGroupView()内实施方法ExpandableListAdapter。在那里,您可以扩充此布局并访问此布局中的所有视图,并为此布局编写单击侦听器。

好的..这是实现clicklisteners的示例getGroupView()供您参考:

@Override
        public View getGroupView(int groupPosition, boolean isExpanded,
                View convertView, ViewGroup parent) {
            View v = convertView;
            if(v == null){
                v= mInflator.inflate(R.layout.group_layout, null);
            }

            TextView text = (TextView )v.findViewById(R.id.your text id);
            ImageView image = (ImageView)v.findViewById(R.id.your image id);


          text .setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ///your code here
       }
        }
    });



       image .setOnClickListener(new OnClickListener() {
            @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ///your code here
       }
        }
    });

            return v;
        }