編輯:關於Android編程
Android中的設置按鈕:長按或點擊菜單鍵
1.長按選項:
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MenuActivity" > <TextView android:id="@+id/menutext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="第一種方法創建菜單" android:textSize="sp" /> <TextView android:id="@+id/menutext" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="第二種方法創建菜單" android:textSize="sp" /> <ListView android:id="@+id/menulist" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="dp" > </ListView> </LinearLayout>
實現過程:
private ListView list; private TextView lv; String[] str = { "TextView", "EditView", "Toast(消息框)" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); list = (ListView) findViewById(R.id.menulist); ArrayAdapter<String> arr = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_, str); list.setAdapter(arr); list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.clear(); menu.clearHeader(); menu.setHeaderIcon((R.drawable.ic_launcher)); menu.setHeaderTitle("我是ListView"); menu.add(, , , "刪除"); menu.add(, , , "修改"); } }); // 第一種方法 TextView tv = (TextView) findViewById(R.id.menutext); this.registerForContextMenu(tv); // 第二種方法 lv = (TextView) findViewById(R.id.menutext); lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("長度-ContextMenu"); menu.add(, , , "復制"); SubMenu sb = menu.addSubMenu("查找"); sb.add(, , , "按id查找"); sb.add(, , , "按名稱查找"); } }); }
2.長按菜單項:
private ListView list; private TextView lv; String[] str = { "TextView", "EditView", "Toast(消息框)" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_menu); list = (ListView) findViewById(R.id.menulist); ArrayAdapter<String> arr = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_, str); list.setAdapter(arr); list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.clear(); menu.clearHeader(); menu.setHeaderIcon((R.drawable.ic_launcher)); menu.setHeaderTitle("我是ListView"); menu.add(, , , "刪除"); menu.add(, , , "修改"); } }); // 第一種方法 TextView tv = (TextView) findViewById(R.id.menutext); this.registerForContextMenu(tv); // 第二種方法 lv = (TextView) findViewById(R.id.menutext); lv.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("長度-ContextMenu"); menu.add(, , , "復制"); SubMenu sb = menu.addSubMenu("查找"); sb.add(, , , "按id查找"); sb.add(, , , "按名稱查找"); } }); }
下面給大家補充點Menu的基本用法
使用xml定義Menu
菜單資源文件必須放在res/menu目錄中。菜單資源文件必須使用<menu>標簽作為根節點。除了<menu>標簽外,還有另外兩個標簽用於設置菜單項和分組,這兩個標簽是<item>和<group>。
<menu>標簽沒有任何屬性,但可以嵌套在<item>標簽中,表示子菜單的形式。不過<item>標簽中不能再嵌入<item>標簽。
1.<item>標簽的屬性含義如下:
Id:表示菜單項的資源ID
menuCategory:同種菜單項的種類。該屬性可取4個值:container、system、secondary和alternative。通過menuCategroy屬性可以控制菜單項的位置。例如將屬性設為system,表示該菜單項是系統菜單,應放在其他種類菜單項的後面。
orderInCategor:同種類菜單的排列順序。該屬性需要設置一個整數值。例如menuCategory屬性值都為system的3個菜單項(item1、item2和item3)。將這3個菜單項的orderInCategory屬性值設為3、2、1,那麼item3會顯示在最前面,而item1會顯示在最後面。
title:菜單項標題(菜單項顯示的文本)
titleCondensed:菜單項的短標題。當菜單項標題太長時會顯示該屬性值
icon:菜單項圖標資源ID
alphabeticShortcut:菜單項的字母快捷鍵
numericShortcut:菜單項的數字快捷鍵
checkable:表示菜單項是否帶復選框。該屬性可設計為true或false
checked:如果菜單項帶復選框(checkable屬性為true),該屬性表示復選框默認狀態是否被選中。可設置的值為true或false
visible:菜單項默認狀態是否可視
enable:菜單項默認狀態是否被激活
2.<group>標簽的屬性含義如下:
id:表示菜單組的ID
menuCategory:與<item>標簽的同名屬性含義相同。只是作用域為菜單組
orderInCategory:與<item>標簽的同名屬性含義相同。只是作用域為菜單組
checkableBehavior:設置該組所有菜單項上顯示的選擇組件(CheckBox或Radio Button)。如果將該屬性值設為all,顯示
CheckBox組件;如果設為single,顯示Radio Button組件;如果設為none,顯示正常的菜單項(不顯示任何選擇組件)。要注意的是,Android SDK官方文檔在解釋該屬性時有一個筆誤,原文是:
Whether the items are checkable. Valid values: none, all(exclusive/radiobuttons), single(non-exclusive/checkboxes).
相反了,正確應該是
all(non-exclusive/checkboxes),single(exclusive/radiobuttons).
visible:表示當前組中所有菜單項是否顯示。該屬性可設置的值是true或false
enable:表示當前組中所有菜單項是否被激活。該屬性可設置的值是true或false
前言:加載並顯示gif是App常見的一個功能,像加載普通圖片一樣,大體應該包含以下幾項功能:1、自動下載GIF到本地文件作為緩存,第二次加載同一個url的圖片不需要下載第
任務棧簡單入門??最近又把兩本進階書看了一遍,但總感覺好記性不如爛筆頭,所以還是決定通過博客記錄一下,我們將分兩篇來全面深入地記錄Activity 啟動模式與任務棧的內容
寫代碼的時候過度依賴鼠標可能會遇到比低效率更嚴重的問題。這裡的技巧幫助你寫更少的代碼,充分發揮鍵盤的功能,因此你可以避免發生這樣的情況:hanks Obama.這裡的絕大
沒睡著覺,起來更篇文章吧哈哈!首先祝賀李宗偉擊敗我丹,雖然我是支持我丹的,但是他也不容易哈哈,值得尊敬的人!切入正題:這一篇來介紹個自定義廣播接收者。通常我們在外撥電話的