最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)現(xiàn)類似于PC中的右鍵彈出菜單效果

 更新時(shí)間:2015年12月23日 10:45:57   投稿:lijiao  
這篇文章主要介紹了Android實(shí)現(xiàn)類似于PC中的右鍵彈出菜單效果,需要的朋友可以參考下

 Android系統(tǒng)中的ContextMenu(上下文菜單)類似于PC中的右鍵彈出菜單,當(dāng)一個(gè)視圖注冊到一個(gè)上下文菜單時(shí),執(zhí)行一個(gè)在該對象上的“長按”動(dòng)作,將出現(xiàn)一個(gè)提供相關(guān)功能的浮動(dòng)菜單。上下文菜單可以被注冊到任何視圖對象中,不過,最常見的是用于列表視圖ListView的item,在按中列表項(xiàng)時(shí),會(huì)轉(zhuǎn)換其背景色而提示將呈現(xiàn)上下文菜單。 
注意:上下文菜單不支持圖標(biāo)和快捷鍵。
為了創(chuàng)建一個(gè)上下文菜單,你必須重寫這個(gè)活動(dòng)的上下文菜單回調(diào)函數(shù):onCreateContextMenu() 和 onContextItemSelected()。在回調(diào)函數(shù)onCreateContextMenu()里,你可以通過使用一個(gè)add()方法來添加菜單項(xiàng),或者通過擴(kuò)充一個(gè)定義在XML中的菜單資源。然后,通過registerForContextMenu()為這個(gè)視圖注冊一個(gè)上下文菜單ContextMenu.  
下面我通過一個(gè)實(shí)例Demo來展示下ContextMenu的基本使用,通過手動(dòng)添加Menu菜單和XML文件兩種方式來配置Menu的選項(xiàng)。
1、該Demo的工程結(jié)構(gòu)目錄圖如下:

2、res/layout目錄下的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:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  android:text="Hello,This is Andy's Blog!"/> 
 <ListView 
  android:id="@+id/lv" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content"/> 
</LinearLayout> 

3、 res/menu目錄下的 cmenu.xml 菜單選項(xiàng)文件源碼如下:

<?xml version="1.0" encoding="utf-8"?> 
<menu 
 xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item android:id="@+id/add" android:title="增加"/> 
 <item android:id="@+id/update" android:title="更新"/> 
 <item android:id="@+id/delete" android:title="刪除"/> 
</menu> 

4、com.andyidea.menudemo包下的 MenuActivity.java 源碼如下:

package com.andyidea.menudemo; 
 
import java.util.ArrayList; 
import java.util.List; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.ContextMenu; 
import android.view.ContextMenu.ContextMenuInfo; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 
 
public class MenuActivity extends Activity { 
  
 ListView lv; 
 private ArrayAdapter<String> adapter; 
 private List<String> alist = new ArrayList<String>(); 
  
 /** Called when the activity is first created. */ 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
   
  lv = (ListView)findViewById(R.id.lv); 
  alist.add("第一"); 
  alist.add("第二"); 
  alist.add("第三"); 
  adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,alist); 
  lv.setAdapter(adapter); 
   
  //注冊視圖對象,即為ListView控件注冊上下文菜單 
  registerForContextMenu(lv); 
 } 
 
 /** 
  * 創(chuàng)建上下文菜單選項(xiàng) 
  */ 
 @Override 
 public void onCreateContextMenu(ContextMenu menu, View v, 
   ContextMenuInfo menuInfo) { 
   
  //1.通過手動(dòng)添加來配置上下文菜單選項(xiàng) 
  //menu.add(0, 1, 0, "修改"); 
  //menu.add(0, 2, 0, "刪除"); 
   
  //2.通過xml文件來配置上下文菜單選項(xiàng) 
  MenuInflater mInflater = getMenuInflater(); 
  mInflater.inflate(R.menu.cmenu, menu); 
   
  super.onCreateContextMenu(menu, v, menuInfo); 
 } 
 
 /** 
  * 當(dāng)菜單某個(gè)選項(xiàng)被點(diǎn)擊時(shí)調(diào)用該方法 
  */ 
 @Override 
 public boolean onContextItemSelected(MenuItem item) { 
  switch(item.getItemId()){ 
  case 1: 
   Toast.makeText(this, "你選擇了手動(dòng)修改", Toast.LENGTH_SHORT).show(); 
   break; 
  case 2: 
   Toast.makeText(this, "你選擇了手動(dòng)刪除", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.add: 
   Toast.makeText(this, "你選擇了XML增加", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.update: 
   Toast.makeText(this, "你選擇了XML更新", Toast.LENGTH_SHORT).show(); 
   break; 
  case R.id.delete: 
   Toast.makeText(this, "你選擇了XML刪除", Toast.LENGTH_SHORT).show(); 
   break; 
  } 
  return super.onContextItemSelected(item); 
 } 
 
 /** 
  * 當(dāng)上下文菜單關(guān)閉時(shí)調(diào)用的方法 
  */ 
 @Override 
 public void onContextMenuClosed(Menu menu) { 
  // TODO Auto-generated method stub 
  super.onContextMenuClosed(menu); 
 } 
  
} 

5、Demo運(yùn)行后的運(yùn)行截圖如下:

希望本文所述對大家學(xué)習(xí)Android軟件編程有所幫助。

相關(guān)文章

最新評(píng)論

昌乐县| 牙克石市| 郁南县| 许昌市| 吴江市| 新和县| 旬阳县| 鹿泉市| 临西县| 城市| 巴青县| 深州市| 玛多县| 齐河县| 当阳市| 新沂市| 泌阳县| 衡水市| 安顺市| 满城县| 神农架林区| 乳山市| 勐海县| 峨眉山市| 洪泽县| 吉安县| 子洲县| 凉山| 元氏县| 龙陵县| 塘沽区| 阳高县| 玉门市| 宁夏| 合水县| 亚东县| 陵水| 余姚市| 阜康市| 漳浦县| 杭州市|