2012-08-10 138 views
0

我正在关注guide的复制和粘贴在Android开发人员的页面上。然而,有一个部分我不完全得到,这与纯文本上粘贴的部分:了解复制/粘贴Android

// Gets the ID of the "paste" menu item 
MenuItem mPasteItem = menu.findItem(R.id.menu_paste); 

// If the clipboard doesn't contain data, disable the paste menu item. 
// If it does contain data, decide if you can handle the data. 
if (!(clipboard.hasPrimaryClip())) { 

mPasteItem.setEnabled(false); 

} else if (!(clipboard.getPrimaryClipDescription().hasMimeType(MIMETYPE_TEXT_PLAIN))) { 

    // This disables the paste menu item, since the clipboard has data but it is not plain text 
    mPasteItem.setEnabled(false); 
} else { 

    // This enables the paste menu item, since the clipboard contains plain text. 
    mPasteItem.setEnabled(true); 
} 
} 

我能理解大部分,但什么了我个措手不及的是使用一个成员变量。我知道这些指南不是1:1的代码,但是我只是发现并没有提到一个名为“菜单”的变量。所以,我问那些可能比我更了解Android的人,这个变量的目的是什么?我知道我回去编辑menu.xml文件,以便我有一个“复制”和“粘贴”项(这个“教程”似乎使用),但现在我不知道如何实例化/初始化这个菜单,我也不知道它的目的。谁可以给我解释一下这个?

谢谢。

回答

2

傻Android开发,使用无证变量...

这包含了一些布局Menu在其中粘贴按钮(MenuItem)可以发现一个参考。此物品有ID menu_paste,您可能已经或可能不知道。

实际上,这个menu变量可以是任何包含菜单项的Menu布局。您可以了解如何创建Menu s here

+0

我有一个菜单,如何初始化这个“菜单”变量? – NioShobu 2012-08-10 22:57:40

+0

这取决于您如何创建菜单。在某些情况下,请参阅设置[操作栏或选项菜单](http://developer.android.com/guide/topics/ui/menus.html#options-menu),您的代码会在'onCreateOptionsMenu(...)'方法中进行。在那里,'menu'项目已经存在,那就是你想要使用的那个。 – Eric 2012-08-10 22:59:42

+0

我有'getMenuInflater()。inflate(R.menu.activity_main,menu); 返回true;'在该方法中,它在Menu中发送。我应该只是将菜单发送到我的pasteText()方法? – NioShobu 2012-08-10 23:04:00