日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Android中文API(97)—— ContextMenu

發布時間:2024/9/20 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中文API(97)—— ContextMenu 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  本章內容是android.view.ContextMenu,版本為Android 2.3 r1,翻譯來自"Kun",再次感謝"Kun" !期待你一起參與Android 中文API的翻譯,聯系我over140@gmail.com。
?

?

聲明

  歡迎轉載,但請保留文章原始出處:)
?

    農民伯伯:http://over140.blog.51cto.com/

    Android中文翻譯組:http://goo.gl/6vJQl
?

?

正文

  一、結構

?

public interface ContextMenu implements Menu

?

android.view.ContextMenu

?

?

  二、概述

?

?? ?  擴展自Menu的上下文菜單提供了修改上下文菜單頭(header)的功能。(譯者注:當一個視圖注冊了上下文菜單時,執行一個在該對象上長按(2秒)的動作,將出現一個具有相關功能的浮動菜單。)

?? ?  上下文菜單不支持菜單項的快捷方式和圖標。

?? ?  當執行長按上下文菜單時,大多數情況會調用registerForContextMenu(View) 函數和重寫執行onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo)函數。(譯者注:因為要創建一個上下文菜單,你必須重寫這個活動的上下文回調函數onCreateContextMenu() 并且 通過registerForContextMenu(View) 為其注冊上下文菜單。)

?

?

  三、內部類

?

???????? interface ?ContextMenu.ContextMenuInfo

  獲得更多關于創建上下文菜單的信息。(?譯者注:例如:AdapterViews 使用這個類可以精確選擇adapter的位置來啟動上下文菜單。)

?

?

  四、公共方法

?

    public abstract void clearHeader ()

  清除上下文菜單頭的信息。(譯者注:包括圖片和文字信息

     

?

  Menu.clearHeader();

  

?

  public abstract ContextMenu setHeaderIcon (Drawable icon)

  為上下文菜單頭設置圖標

  參數

  icon ???????? 你要使用的Drawable

??????????   返回值

  調用你設置修改的上下文菜單

?

  public abstract ContextMenu setHeaderIcon (int iconRes)

  設置上下文菜單頭圖標為指定的資源id

  參數

  iconRes ?你要使用的圖標資源的目錄

(譯者注:把圖標放入res/drawable/ 目錄下,R文件會自動生成對應項。設置方法如menu.setHeaderIcon(R.drawable.webtext)

  這個上下文菜單頭是沒有設置圖標的

???????? ??????  

  這個上下文菜單頭是設置了圖標的?

      ?

?

  返回值

  調用你設置修改過的上下文菜單

?

  public abstract ContextMenu setHeaderTitle (int titleRes)

  通過資源標識符為上下文菜單頭的標題欄設置文字。(譯者注:需要在res/string中先設置一段你需要的文字,如:<string name="titletest">這是一段測試文字</string>

然后通過R文件索引到這段文字,menu.setHeaderTitle(R.string.titletest)

參數????

titleRes ?所需文字資源的索引

?????????????????? 返回值

調用你設置修改過的上下文菜單

?

  public abstract ContextMenu setHeaderTitle (CharSequence title)

  設置上下文菜單的標題,顯示在標題欄

  參數

  title ???????? 標題要顯示的文字

???????????????? 返回值

  調用你設置修改過的上下文菜單

?

  public abstract ContextMenu setHeaderView (View view)

  設置View 到上下文菜單頭上。將替代上下文菜單頭的圖標和標題(或者替代你之前設置的headerView

  參數

  view ??????? 上下文菜單頭要使用的 View

???????????????? 返回值

  調用你設置修改過的上下文菜單內容

?

?

  五、補充
?

?

????????  文章精選:

?????????????????? Android 的上下文菜單: Context Menu

?????????????????? androidContextMenu

?????????????????? android 上下文菜單Context Menu

  代碼示例:

      Test_Contextmenu.java

public?class?Test_Contextmenu?extends?Activity?{
????
/**?Called?when?the?activity?is?first?created.?*/
????@Override
????
public?void?onCreate(Bundle?savedInstanceState)?{
????????
super.onCreate(savedInstanceState);
????????setContentView(R.layout.main);
????????TextView?txt1?
=?(TextView)?this.findViewById(R.id.txt1);
????????
this.registerForContextMenu(txt1);
????????TextView?txt2?
=?(TextView)?this.findViewById(R.id.txt2);
????????
this.registerForContextMenu(txt2);
????}??
????
// 重寫 onCreateContextMenu 用以創建上下文菜單
?????@Override
????
public?void?onCreateContextMenu(ContextMenu?menu,?View?v,
????????????ContextMenuInfo?menuInfo){
????????
super.onCreateContextMenu(menu,?v,?menuInfo);
????????
//?創建?R.id.txt1??的上下文菜單
????????if?(v?==?(TextView)?this.findViewById(R.id.txt1))?{
????????????menu.setHeaderIcon(R.drawable.icon);
????????????menu.setHeaderTitle(R.string.titletest);
????????????
//menu.clearHeader();
????????????
// 第一個參數:組ID
????????????
// 第二個參數:菜單項ID
????????????
// 第三個參數:順序號
????????????
// 第四個參數:菜單項上顯示的內容
????????????menu.add(1,0,0,"菜單1");
????????????menu.add(
1,1,1,"菜單2").setCheckable(true);?// 增加一個√選項
????????????
????????}
????????
//?創建?R.id.txt2?的上下文菜單(多級)
????????else?if(v?==?(TextView)?this.findViewById(R.id.txt2)){
????????????
????????
//?ContextMenu.addSubMenu("菜單名稱") - 用來添加子菜單。子菜單其實就是一個特殊的菜單
????????????SubMenu?sub1?=?menu.addSubMenu("父菜單1");
????????????sub1.setHeaderIcon(R.drawable.folder);
????????????sub1.add(
0,?0,?0,?"菜單1");
????????????sub1.add(
0,?1,?1,?"菜單2");
????????????sub1.setGroupCheckable(
1,?true,?true);
????????????SubMenu?sub2?
=?menu.addSubMenu("父菜單2");
????????????sub2.setIcon(R.drawable.text);
????????????sub2.add(
1,?0,?0,?"菜單3");
????????????sub2.add(
1,?1,?1,?"菜單4");
????????????sub2.setGroupCheckable(
1,?true,?true);
????????}
????}
}

    main.xml

<?xml?version="1.0"?encoding="utf-8"?>
<LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"
????android:orientation
="vertical"
????android:layout_width
="fill_parent"
????android:layout_height
="fill_parent"
????
>
<TextView?
????
android:id="@+id/txt1"?
????android:layout_width
="fill_parent"?
????android:layout_height
="wrap_content"?
????android:text
="請?長?按?觸?發(txt1)"
????
/>
????
<TextView?
????
android:id="@+id/txt2"?
????android:layout_width
="fill_parent"?
????android:layout_height
="wrap_content"?
????android:text
="請?長?按?觸?發(txt2)"
????
/>
????
</LinearLayout>

    strings.xml

<?xml?version="1.0"?encoding="utf-8"?>
<resources>
????
<string?name="hello">Hello?World,?Test_Contextmenu!</string>
????
<string?name="app_name">Test_Contextmenu</string>
????
<string?name="titletest">這是一段測試文字</string>
</resources>

轉載于:https://blog.51cto.com/over140/582398

總結

以上是生活随笔為你收集整理的Android中文API(97)—— ContextMenu的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。