Android-实现选项菜单(复制、剪切、粘贴)

1、打开 res\values 目录下的 string.xml 文件,创建各个菜单项标题和编辑框要显示的默认文本所需要的字符串变量

<resources>    
        <string name="app_name">InternationalizedMenu</string>        
        <string name="copy">复制</string>    
        <string name="cut">剪切</string>    
        <string name="prase">粘贴</string>
</resources>

2、在 res 创建一个menu 目录,并在该目录下创建一个contextmenu.xml 的菜单资源文件

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/item1" android:title="@string/copy" android:alphabeticShortcut="c"></item>
    <item android:id="@+id/item2" android:title="@string/cut" android:alphabeticShortcut="x"></item>
    <item android:id="@+id/item3" android:title="@string/prase" android:alphabeticShortcut="v"></item>
</menu>

3、在 main.xml 中,添加一个 EditView 组件,并设置默认显示文本

<EditText
    android:layout_width="200dp"
    android:layout_height="50dp"
    android:id="@+id/editText"
    android:hint="请输入检索文字"/>

4、在 Activity 中,重写onCreateContextMenu()和onContextItemSelected()方法

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editText = (EditText) this.findViewById(R.id.editText);
    registerForContextMenu(editText); // 为编辑框创建上下文菜单

}

public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo contextMenuInfo){
    MenuInflater inflater = new MenuInflater(MainActivity.this); // 实例化一个 MenuInflater 对象
    inflater.inflate(R.menu.contextmenu,menu); // 解析菜单文件
}

public boolean onContextItemSelected(MenuItem item){
    Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
    return true;
}```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容