綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 如何修改contextMenu title的名稱

[複製連結] 查看: 1695|回覆: 11|好評: 0
跳轉到指定樓層
樓主
wind8894 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2012-12-9 22:36

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
我有一個字串陣列,有3個字串,把它放到listview顯示出來

然後長按後顯示ContextMenu,他的HeaderTitle要顯示選擇的那個字串名稱

那麼在contextMenu.setHeaderTitle("測試檔案_音樂檔.mp3");   這邊要怎麼做修改呢?
  1. private String[] imgText = {
  2.             "測試檔案_圖片.jpeg", "測試檔案_簡報檔.pptx", "測試檔案_音樂檔.mp3"            
  3.     };

  4. listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {   
  5.                   
  6.             @Override  
  7.             public void onCreateContextMenu(ContextMenu contextMenu, View v,   
  8.                     ContextMenuInfo info) {   
  9.                 // TODO Auto-generated method stub   
  10.                 contextMenu.setHeaderTitle("測試檔案_音樂檔.mp3");                 
  11.                     contextMenu.add(0, 0, 0, R.string.openfile);
  12.                     contextMenu.add(0, 1, 0, R.string.upload);
  13.                      contextMenu.add(0, 2, 0, R.string.addfavorite);
  14.                      contextMenu.add(0, 3, 0, R.string.sharefile);                    
  15.             }     
  16.         });
複製代碼
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2012-12-10 09:31
用一個全域的變數就可以了啊?
(是我想的太簡單了嗎?)
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| wind8894 | 收聽TA | 只看該作者
發表於 2012-12-10 18:35
所以他能夠這樣嗎?
  1. contextMenu.setHeaderTitle(imgText[0]);
複製代碼
??
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
ploglin | 收聽TA | 只看該作者
發表於 2012-12-11 09:14
可以呀,只要你的 imgText 是 String array 就沒問題了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| wind8894 | 收聽TA | 只看該作者
發表於 2012-12-11 17:32
那我要改成這樣嗎?
  1. for (int i = 0; i < image.length; i++) {
  2.                     contextMenu.setHeaderTitle(imgText[i].toString());
  3.                     contextMenu.add(0, 0, 0, R.string.openfile);
  4.                     contextMenu.add(0, 1, 0, R.string.upload);
  5.                      contextMenu.add(0, 2, 0, R.string.addfavorite);
  6.                      contextMenu.add(0, 3, 0, R.string.sharefile);
  7.                     }
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
ploglin | 收聽TA | 只看該作者
發表於 2012-12-11 17:48
我不懂的是為什麼你會有一個 for 迴圈。
header title 是當觸發的時候去異動的,你這樣做只會吃最後一個內容。而且menu會新增很多個?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

7
 樓主| wind8894 | 收聽TA | 只看該作者
發表於 2012-12-11 17:54
因為我是一個listview,當長按某個listitem時,會跳出ContextMenu

所以會有好多個item,所以才不知道這邊要如何做修改
  1. imgText[].toString()
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

8
ploglin | 收聽TA | 只看該作者
發表於 2012-12-12 09:59
ListView 的話,會用 ArrayAdapter 或 SimpleAdapter
使用 ListView 的 onItemLongClick 會回傳 adapter, view, position id。
在 onItemLongClick 的事件中,利用 position 去取得目前對應的資料,再去異動 title 就可以了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

9
 樓主| wind8894 | 收聽TA | 只看該作者
發表於 2012-12-12 23:54
這樣會有錯  是這樣改嗎?
  1. imgText[position].toString()
複製代碼
  1. listView.setOnItemLongClickListener(new OnItemLongClickListener() {
  2.             public boolean onItemLongClick(AdapterView<?> adapter, View view, int position, long id) {
  3.             
  4.                     listView.showContextMenu();
  5.             return true;
  6.             }
  7.         });
  8.         listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {   
  9.                
  10.             @Override  
  11.             public void onCreateContextMenu(ContextMenu contextMenu, View v,   
  12.                     ContextMenuInfo info) {   
  13.                 // TODO Auto-generated method stub                      
  14.                     contextMenu.setHeaderTitle(imgText[position].toString());
  15.                     contextMenu.add(0, 0, 0, R.string.openfile);
  16.                     contextMenu.add(0, 1, 0, R.string.upload);
  17.                      contextMenu.add(0, 2, 0, R.string.addfavorite);
  18.                      contextMenu.add(0, 3, 0, R.string.sharefile);
  19.                    
  20.             }   
  21.   
  22.         });
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

10
ploglin | 收聽TA | 只看該作者
發表於 2012-12-13 09:13
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則