欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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è)視圖注冊(cè)到一個(gè)上下文菜單時(shí),執(zhí)行一個(gè)在該對(duì)象上的“長按”動(dòng)作,將出現(xiàn)一個(gè)提供相關(guān)功能的浮動(dòng)菜單。上下文菜單可以被注冊(cè)到任何視圖對(duì)象中,不過,最常見的是用于列表視圖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è)視圖注冊(cè)一個(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); 
   
  //注冊(cè)視圖對(duì)象,即為ListView控件注冊(cè)上下文菜單 
  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)行截圖如下:

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

相關(guān)文章

  • Android開發(fā)之Android.mk模板的實(shí)例詳解

    Android開發(fā)之Android.mk模板的實(shí)例詳解

    這篇文章主要介紹了Android開發(fā)之Android.mk模板的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • Android原生側(cè)滑控件DrawerLayout使用方法詳解

    Android原生側(cè)滑控件DrawerLayout使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Android原生側(cè)滑控件DrawerLayout的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android版學(xué)生管理系統(tǒng)

    Android版學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Android版學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Android編程中Perferences的用法實(shí)例分析

    Android編程中Perferences的用法實(shí)例分析

    這篇文章主要介紹了Android編程中Perferences的用法,以實(shí)例形式較為詳細(xì)的分析了配置文件preferences.xml的功能、定義及使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android實(shí)現(xiàn)局部模糊效果

    Android實(shí)現(xiàn)局部模糊效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)局部模糊效果,幫助大家實(shí)現(xiàn)模糊或者毛玻璃效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android BannerView通用封裝詳解

    Android BannerView通用封裝詳解

    這篇文章主要介紹了Android BannerView通用封裝詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • android?sharedUserId?使用知識(shí)盲點(diǎn)解析

    android?sharedUserId?使用知識(shí)盲點(diǎn)解析

    這篇文章主要為大家介紹了android?sharedUserId使用的知識(shí)盲點(diǎn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android中ScrollView嵌套GridView顯示不全解決方法

    Android中ScrollView嵌套GridView顯示不全解決方法

    這篇文章主要介紹了Android中ScrollView嵌套GridView顯示不全解決方法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • android 加載本地聯(lián)系人實(shí)現(xiàn)方法

    android 加載本地聯(lián)系人實(shí)現(xiàn)方法

    在android開發(fā)過程中,有些功能需要訪問本地聯(lián)系人列表,本人搜集整理了一番,拿出來和大家分享一下,希望可以幫助你們
    2012-12-12
  • 詳解Android 7.0 Settings 加載選項(xiàng)

    詳解Android 7.0 Settings 加載選項(xiàng)

    本篇文章主要介紹了Android 7.0 Settings 加載選項(xiàng),Android 7.0 Settings頂部多了一個(gè)建議選項(xiàng),多了個(gè)側(cè)邊欄,操作更加便捷了,有興趣的可以了解一下。
    2017-02-02

最新評(píng)論