首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

给一个控件加下上文菜单(ContextMenu)Creating a ContextMenu on a View

2012-09-22 
给一个控件加上下文菜单(ContextMenu)Creating a ContextMenu on a Viewlayout中的main.xml XML:?xml ver

给一个控件加上下文菜单(ContextMenu)Creating a ContextMenu on a View

layout中的main.xml

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 ="Long-Press on of the Items in the list." />      <ListView android:id ="@+id/list_favorites"           android:layout_width ="fill_parent"           android:layout_height ="fill_parent" /> </LinearLayout> 


源代码是:

Java代码
package com.gggeye.study;    import java.util.ArrayList;    import android.app.Activity;  import android.os.Bundle;  import android.view.ContextMenu;  import android.view.MenuItem;  import android.view.View;  import android.view.ContextMenu.ContextMenuInfo;  import android.view.View.OnCreateContextMenuListener;  import android.widget.ArrayAdapter;  import android.widget.ListView;       public class ContextMenuSample extends Activity {         // ===========================================================       // Final Fields       // ===========================================================       protected static final int CONTEXTMENU_DELETEITEM = 0;         // ===========================================================       // Fields       // ===========================================================         protected ListView mFavList;       protected ArrayList<Favorite> fakeFavs = new ArrayList<Favorite>();         // ===========================================================       // "Constructors"       // ===========================================================         /** Called when the activity is first created. */       @Override       public void onCreate(Bundle icicle) {            super.onCreate(icicle);            setContentView(R.layout.main);              /* Add some items to the list the listview will be showing. */            fakeFavs.add(new Favorite("John", "nice guy"));            fakeFavs.add(new Favorite("Yasmin", "hot girl"));            fakeFavs.add(new Favorite("Jack", "cool guy"));              this.mFavList = (ListView) this.findViewById(R.id.list_favorites);            initListView();       }         private void refreshFavListItems() {            mFavList.setAdapter(new ArrayAdapter<Favorite>(this,                      android.R.layout.simple_list_item_1, fakeFavs));       }         private void initListView() {            /* Loads the items to the ListView. */            refreshFavListItems();              /* Add Context-Menu listener to the ListView. */            mFavList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {                   public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenuInfo info) {                      conMenu.setHeaderTitle("ContextMenu");                      conMenu.add(0, 0, 0, "Delete this favorite!");                                          /* Add as many context-menu-options as you want to. */                 }            });       }         // ===========================================================       // Methods from SuperClass/Interfaces       // ===========================================================         @Override       public boolean onContextItemSelected(MenuItem aItem) {            ContextMenuInfo menuInfo = (ContextMenuInfo) aItem.getMenuInfo();              /* Switch on the ID of the item, to get what the user selected. */            switch (aItem.getItemId()) {                 case CONTEXTMENU_DELETEITEM:                      /* Get the selected item out of the Adapter by its position. */                      Favorite favContexted = (Favorite) mFavList.getAdapter()                           .getItem(0);                      /* Remove it from the list.*/                      fakeFavs.remove(favContexted);                        refreshFavListItems();                      return true; /* true means: "we handled the event". */            }            return false;       }         // ===========================================================       // Inner and Anonymous Classes       // ===========================================================         /** Small class holding some basic */       protected class Favorite {              protected String name;            protected String kindness;              protected Favorite(String name, String kindness) {                 this.name = name;                 this.kindness = kindness;            }              /** The ListView is going to display the toString() return-value! */            public String toString() {                 return name + " (" + kindness + ")";            }              public boolean equals(Object o) {                 return o instanceof Favorite && ((Favorite) o).name.compareTo(name) == 0;            }       }  }  

热点排行