您的位置:首页 > 移动开发 > Android开发

来实现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欢迎访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐