来实现android自定义的menu菜单之二:为自定义menu中的线性布局添加事件
2013-06-04 00:00
666 查看
接着上一篇文章,我们实现了自定义的menu菜单。
其中,包括了三部分:分别是 关于,设置 和退出。看过上一篇文章的童鞋会知道这三部分分别是由三个线性布局构成的。每一个线性布局里面包括一个ImageView和一个TextView两个控件。本篇文章要实现的内容就是给自定义menu添加单击事件。
即:单击关于的时候 会弹出一个 对话框;单击 设置区域 会跳转到另一个设置页面;单击退出,就退出该应用。
那么,文首已经介绍过,每一个部分是由一个线性布局构成,每一个线性布局里面包括一个ImageView和一个TextView两个控件。那么怎么添加事件呢?是给每一个控件单独添加吗?
单独添加也可以,但是比较麻烦。比较简单的办法就是给该部分所在的布局添加事件就可以了。
我在这里再次贴出自定义menu的布局文件(layout_custom_menu.xml):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 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" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#A1A1A1" android:gravity="center_horizontal" android:layout_marginTop="1dp" android:orientation="horizontal" > <LinearLayout 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" > <ImageView android:id="@+id/menu_item_iv_helper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/menu_about" /> <TextView android:id="@+id/menu 3ff0 _item_txt_helper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff222222" android:text="关于" /> </LinearLayout> <LinearLayout 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" > <ImageView android:id="@+id/menu_item_iv_feedback" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/menu_shezhi" /> <TextView android:id="@+id/menu_item_txt_feedback" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff222222" android:text="设置" /> </LinearLayout> <LinearLayout 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" > <ImageView android:id="@+id/menu_item_iv_exit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/menu_logout" /> <TextView android:id="@+id/menu_item_txt_exit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ff222222" android:text="退出" /> </LinearLayout> </LinearLayout> </LinearLayout>
从布局文件中,我们可以看出,我分别为三部分的线性布局分别添加了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事件里怎么写,就看大家的需求了,我这里就不必再详细赘述了。
下面,贴一下点击关于后的弹出框的效果:
博客文章已经全部迁到:http://phping.sinaapp.com欢迎访问!
相关文章推荐
- (转)android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu
- android自定义RadioGroup实现可以添加多种布局
- Android自定义ViewGroup自动换行实现滑动任意布局及事件处理效果
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- 2014-10-27Android学习------布局处理(八)------自定义ListView的监听事件和Adapter的实现-----城市列表应用程序
- Android自定义ViewGroup:实现简单的垂直方向线性布局(2)
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu
- Android自定义控件系列 六:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- RadioGroup - android自定义RadioGroup实现可以添加多种布局
- android自定义RadioGroup实现可以添加多种布局
- Android自定义ViewGroup:实现简单的垂直方向线性布局(2)
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- android自定义RadioGroup可以添加多种布局的实现方法
- Android自定义ViewGroup:实现简单的垂直方向线性布局(2)
- Android 动态添加线性布局(.java文件内) 实现控件按比例分割空间
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- android自定义控件实现左右划出菜单并添加点击事件
- android自定义RadioGroup实现可以添加多种布局