接着上一篇文章,我们实现了自定义的menu菜单。
其中,包括了三部分:分别是 关于,设置 和退出。看过上一篇文章的童鞋会知道这三部分分别是由三个线性布局构成的。每一个线性布局里面包括一个ImageView和一个TextView两个控件。
本篇文章要实现的内容就是给自定义menu添加单击事件。
即:单击关于的时候 会弹出一个 对话框;单击 设置区域 会跳转到另一个设置页面;单击退出,就退出该应用。
那么,文首已经介绍过,每一个部分是由一个线性布局构成,每一个线性布局里面包括一个ImageView和一个TextView两个控件。那么怎么添加事件呢?是给每一个控件单独添加吗?
单独添加也可以,但是比较麻烦。比较简单的办法就是给该部分所在的布局添加事件就可以了。
我在这里再次贴出自定义menu的布局文件(layout_custom_menu.xml):
android:id="@+id/zong"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#C1CDC1"
android:baselineAligned="false"
android:gravity="center_horizontal"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#A1A1A1"
android:gravity="center_horizontal"
android:layout_marginTop="1dp"
android:orientation="horizontal" >
android:id="@+id/guanyu"
android:clickable="true"
android:layout_width="106dp" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal"
android:layout_marginRight="1dp"
android:layout_marginLeft="1dip"
android:layout_marginTop="1dp"
android:layout_gravity="fill_horizontal"
android:background="#00868B"
>
android:id="@+id/menu_item_iv_helper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_about"
/>
android:id="@+id/menu_item_txt_helper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff222222"
android:text="关于"
/>
android:id="@+id/shezhi"
android:layout_width="106dp" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal"
android:layout_marginRight="1dp"
android:layout_marginTop="1dp"
android:layout_gravity="fill_horizontal"
android:background="#00868B"
>
android:id="@+id/menu_item_iv_feedback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_shezhi"
/>
android:id="@+id/menu_item_txt_feedback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff222222"
android:text="设置"
/>
android:id="@+id/tuichu"
android:layout_width="106dp" android:layout_height="wrap_content"
android:orientation="vertical" android:gravity="center_horizontal"
android:layout_marginTop="1dp"
android:layout_marginRight="1dp"
android:layout_gravity="fill_horizontal"
android:background="#00868B"
>
android:id="@+id/menu_item_iv_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_logout"
/>
android:id="@+id/menu_item_txt_exit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff222222"
android:text="退出"
/>
从布局文件中,我们可以看出,我分别为三部分的线性布局分别添加了id,分别为:
关于:
android:id
=
“@+id/guanyu”
设置:android:id
=
“@+id/shezhi”
退出:android:id
=
“@+id/tuichu”
有了线性布局的id号,我们就可以直接来为该布局添加事件了。
在CustomMenu.java中添加:
//分别获取这个布局
LinearLayout gy = (LinearLayout)view.findViewById(R.id. guanyu);
LinearLayout sz = (LinearLayout)view.findViewById(R.id. shezhi);
LinearLayout tc = (LinearLayout)view.findViewById(R.id. tuichu);
//接下来就可以直接写onclick事件了:
gy.setOnClickListener( new OnClickListener(){
public void onClick(View v) {
// TODO do somthing
}
});
sz.setOnClickListener( new OnClickListener(){
public void onClick(View v) {
// TODO do somthing
}
});
tc.setOnClickListener( new OnClickListener(){
public void onClick(View v) {
// TODO do somthing
}
});
具体在onClick事件里怎么写,就看大家的需求了,我这里就不必再详细赘述了。
下面,贴一下点击关于后的弹出框的效果: