`
byandby
  • 浏览: 1688538 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android ContextMenu

阅读更多
   ContextMenu 继承自 Menu。上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单是注册到某个View对象上的。如果一个View对象注册了上下文菜单,用户可以通过长按(约2秒) 该View对象上以呼出上下文菜单。
    上下文菜单不支持快捷键(shortcut),其菜单选项也不能附带图标,但是可以为上下文菜单的标题指定图标
  下面是一个ContextMenu的小例子,运行效果如下:





Activity类
package xiaohang.zhimeng;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.EditText;

public class Activity01 extends Activity {
	final int MENU1 = 1;
	final int MENU2 = 2;
	final int MENU3 = 3;
	final int MENU4 = 4;
	final int MENU5 = 5;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //为两个文本框注册上下文菜单
        this.registerForContextMenu(findViewById(R.id.EditText01));
        this.registerForContextMenu(findViewById(R.id.EditText02));
    }
    
    //添加上下文菜单
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
    		ContextMenuInfo menuInfo) {
    	//此方法在每次调用上下文菜单时都会被调用一次
    	menu.setHeaderIcon(R.drawable.car);
    	if (v==findViewById(R.id.EditText01)) {
			menu.add(0, MENU1, 0, R.string.mi1);
			menu.add(0, MENU2, 0, R.string.mi2);
			menu.add(0, MENU3, 0, R.string.mi3);
		}
    	else if (v==findViewById(R.id.EditText02)) {
			menu.add(0, MENU4, 0, R.string.mi4);
			menu.add(0, MENU5, 0, R.string.mi5);
		}
    }
    
    //响应上下文菜单
    @Override
    public boolean onContextItemSelected(MenuItem item) {
    	switch (item.getItemId()) {
		case MENU1:
		case MENU2:
		case MENU3:
			EditText et1 = (EditText)this.findViewById(R.id.EditText01);
			et1.append("\n" + item.getTitle() + "被按下");
			break;
		case MENU4:
		case MENU5:
			EditText et2 = (EditText)this.findViewById(R.id.EditText02);
			et2.append("\n" + item.getTitle() + "被按下");
			break;
		}
    	return true;
    }
}


   源码附件
  • 大小: 37.5 KB
  • 大小: 29.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics