给EditText注册上下文菜单ContextMenu

来源:互联网 发布:ps淘宝主图字体 编辑:程序博客网 时间:2024/05/19 06:16
//安卓开发:EditText注册上下文菜单ContextMenu,可以长按出现菜单对话框,选择点击给view赋值
public class MainActivity extends Activity {

private EditText editText01=null;
   private EditText editText02=null;
   
   private final int MENU1 = 1;
   private final int MENU2 = 2;
   private final int MENU3 = 3;
   private final int MENU4 = 4;
   private final int MENU5 = 5;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText01=(EditText)findViewById(R.id.editText01);
        editText02=(EditText)findViewById(R.id.editText02);
        
        //为View对象注册上下文菜单
        this.registerForContextMenu(editText01);
        this.registerForContextMenu(editText02);

}

 /**
     * 初始化上下文菜单
     * 
     * 每次调出上下文菜单时都会被调用一次
     */
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        //menu.setHeaderIcon(R.drawable.ic_launcher);
        switch (v.getId()) {
        case R.id.editText01:
        //1、组别,如果不分组的话就写Menu.NONE=0, 
            //2、Id,这个很重要,Android根据这个Id来确定不同的菜单 
            //3、顺序,哪个菜单项在前面由这个参数的大小决定 
            //4、文本,菜单项的显示文本
            menu.add(0, MENU1, 0, "菜单项1");
            menu.add(0, MENU2, 0, "菜单项2");
            menu.add(0, MENU3, 0, "菜单项3");
            break;
        case R.id.editText02:
            menu.add(0, MENU4, 0, "菜单项4");
            menu.add(0, MENU5, 0, "菜单项5");
            break;
        }
        //super.onCreateContextMenu(menu, v, menuInfo);
    }
    
    
    /**
     *  当用户选择了上下文菜单选项后调用该事件
     */
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case MENU1:
        case MENU2:
        case MENU3:
            editText01.append("\n"+item.getTitle()+"被按下");
            break;
        case MENU4:
        case MENU5:
            editText02.append("\n"+item.getTitle()+"被按下");
            break;
        }
        return true;
    }

}

//布局文件代码如下: 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <EditText android:text="第一文本框" 
        android:id="@+id/editText01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <EditText android:text="第二文本框" 
        android:id="@+id/editText02"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>




1 0
原创粉丝点击