2012-08-10 154 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