android应用开发详解(四)----------各种菜单(optionmenu、contextmenu、submenu)和Toast的使用

1、工程目录



2、testoptioncontextsubmenu_toast.java


package com.example.testoptionmenu;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class TestOptionMenuActivity extends Activity {
	private static final int ITEM1 = Menu.FIRST;
	private static final int ITEM2 = Menu.FIRST + 1;

	private static final int CONTEXTITEM1 = Menu.FIRST;
	private static final int CONTEXTITEM2 = Menu.FIRST + 1;
	private static final int CONTEXTITEM3 = Menu.FIRST + 2;

	private static final int SUBITEM1 = Menu.FIRST;
	private static final int SUBITEM2 = Menu.FIRST + 1;
	private TextView myTextView;
	private Button myButton1;
	private Button myButton2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.test_option_menu);
		myTextView = (TextView) findViewById(R.id.layoutTextView01);
		myButton1 = (Button) findViewById(R.id.layoutButton01);
		myButton2 = (Button) findViewById(R.id.layoutButton02);
		registerForContextMenu(myTextView);
		final int l = Toast.LENGTH_LONG;
		final int s = Toast.LENGTH_SHORT;
		final String ls = "我多显示一会儿!";
		final String ss = "我少显示一会儿!";
		myButton1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), ls, l).show();
			}
		});
		myButton2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), ss, s).show();
			}
		});

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		// getMenuInflater().inflate(R.menu.test_option_menu, menu);
		// 添加菜单项
		menu.add(0, ITEM1, 0, "开始");
		menu.add(0, ITEM2, 0, "退出");
		// 添加子菜单
		SubMenu file = menu.addSubMenu("文件");
		SubMenu edit = menu.addSubMenu("编辑");
		// 为子菜单添加菜单项
		file.add(0, SUBITEM1, 0, "新建");
		file.add(0, SUBITEM2, 0, "打开");
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		case ITEM1:
			setTitle("开始游戏!");

			break;

		case ITEM2:
			setTitle("退出");
			break;
		}
		// 子菜单项的处理
		switch (item.getItemId()) {
		case SUBITEM1:
			setTitle("新建文件!");
			break;
		case SUBITEM2:
			setTitle("打开文件!");
			break;
		}
		return true;
	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v,
			ContextMenuInfo menuInfo) {
		// TODO Auto-generated method stub
		// super.onCreateContextMenu(menu, v, menuInfo);
		// 添加菜单项
		menu.add(0, CONTEXTITEM1, 0, "红色背景");
		menu.add(0, CONTEXTITEM2, 0, "绿色背景");
		menu.add(0, CONTEXTITEM3, 0, "白色背景");
	}

	@Override
	public boolean onContextItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		// return super.onContextItemSelected(item);
		switch (item.getItemId()) {
		case CONTEXTITEM1:
			myTextView.setBackgroundColor(Color.RED);
			break;

		case CONTEXTITEM2:
			myTextView.setBackgroundColor(Color.GREEN);
			break;
		case CONTEXTITEM3:
			myTextView.setBackgroundColor(Color.WHITE);
			break;
		}
		return true;
	}

}


3、布局文件

<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/layoutTextView01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <LinearLayout
        android:id="@+id/layoutLinear01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/layoutButton01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="长时间" />

        <Button
            android:id="@+id/layoutButton02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="短时间" />
    </LinearLayout>

</LinearLayout>


4、menu文件中没有添加,菜单项都在主程序中添加的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值