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

android_菜单的创建_xUtils框架使用

2015-08-03 23:51 489 查看
layout文件:

 activity_main.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="vertical" >
    
    <TextView 
        android:id="@+id/txt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="测试"
        />
    <Button 
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="弹出式菜单"
        />

</LinearLayout>

 
 menu文件:

menu_1.xml 

 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_open"
        android:icon="@android:drawable/star_on"
        android:title="打开"/>
    <item
        android:id="@+id/menu_close"
        android:icon="@android:drawable/star_off"
        android:title="关闭"/>

</menu>

 Activity文件:
 MenuActivity.java

 

package com.example.cn01;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.widget.PopupMenu;
import android.support.v7.widget.PopupMenu.OnMenuItemClickListener;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.example.android0723.R;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;

public class MenuActivity extends Activity {
    
    //ViewInject 引用必须放在前面
    @ViewInject(R.id.btn)
    TextView txt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu_layout);
        txt = (TextView) findViewById(R.id.txt);
        //ViewUtils  注入
        ViewUtils.inject(this);
    }

    //Button单击事件
    //@OnClick({R.id.btn,R.id.btn1})
    @OnClick(R.id.btn)
    public void setBtnClick(View view) {
        // TODO Auto-generated method stub
        //第一步:创建弹出菜单
        PopupMenu popupMenu = new PopupMenu(MenuActivity.this, view);
        //第二步:菜单的样式,通过XML填充弹出菜单
        getMenuInflater().inflate(R.menu.menu_1, popupMenu.getMenu());
        //第三步:实现事件功能
        popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
            public boolean onMenuItemClick(MenuItem item) {
                // TODO Auto-generated method stub
                switch (item.getItemId()) {
                case R.id.menu_open:
                    setToast("打开");
                    break;
                case R.id.menu_close:
                    setToast("关闭");
                default:
                    break;
                }
                return false;
            }
        });
        //第四步:使用show()方法将菜单显示出来
        popupMenu.show();
    }
    //Toast 提示方法
    public void setToast(String string){
        Toast.makeText(MenuActivity.this, string, Toast.LENGTH_SHORT).show();
    }

    // 菜单的创建
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        //第一种:通过xml填充
        // MenuInflater menuInflater = getMenuInflater();
        // menuInflater.inflate(R.menu.main, menu);
        //第二种:代码直接实现
        menu.addSubMenu(1, 0x123, 1, "修改字体颜色");

        return super.onCreateOptionsMenu(menu);
    }

    // 菜单的执行
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case 0x123:
            txt.setTextColor(Color.RED);
            break;
        default:
            break;
        }

        return super.onOptionsItemSelected(item);
    }

    // 上下文菜单创建
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    // 上下文菜单执行
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        return super.onContextItemSelected(item);
    }
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: