android彈出菜單
㈠ 請教實現android工程中點擊菜單彈出一個對話框
說下思路的,既然是彈出對話框,肯定是需要一個dialog,既然這個dialog中的一些屬性是自己設定的,肯定是要設置自己自定義的dialog,怎麼樣才能彈出dialog呢,當你監聽點擊菜單的事件,記得幾貼喲,邏輯很重要的,其他的就要靠你自己的了
android 點擊按鈕 讓菜單從上面彈出
分類: 移動開發/ Android/ 文章
VC/MFC 菜單從繪,點擊菜單項目發送自定義消息,彈出afxMessagebox("1");//報錯
菜單自繪,點擊菜單項目發送自定義消息,彈出afxMessagebox("1");//報錯wm_buttondown消息里//自定義消息SendMessage發送自定義消息,報錯。換成PostMessage就沒事。這是啥原理? 解決方案貼相關
VC/MFC 怎麼點擊按鈕彈出右鍵菜單,並且按鈕保持按上狀態
如何點擊按鈕彈出右鍵菜單,並且按鈕保持按下狀態?環境:VS2008 MFC問題:我重繪了按鈕,分為3個狀態:正常、滑鼠進入、滑鼠按下;當點擊滑鼠時會在按鈕下面彈出右鍵菜單。現在問題是右鍵菜單彈出後,按鈕的按下狀態就消失了!!請問如何在彈出菜單時使按鈕保持按下狀態,在菜單消失時按鈕狀態恢復正常?解決方案你試試看設立一個
VC/MFC MDI怎麼實現一個功能,菜單下點擊一個按鈕彈出一個ClistView
MDI如何實現一個功能,菜單上點擊一個按鈕彈出一個ClistView?MDI如何實現一個功能,菜單上點擊一個按鈕彈出一個ClistView?注意是CListView,不是彈對話框。這個功能怎麼實現啊??解決方案 CDockablePane ?用VS2008SP1/VS2010建個SDI/MDI工程就看到了
Android Android點按鈕彈出系統菜單的方法,該如何處理
Android點按鈕彈出系統菜單的方法不點擊menu按鈕、點擊自定義的按鈕彈出系統的menu菜單如何實現、菜鳥請教、解決方案http://www.eoeandroid.com/thread-69418-1-1.html 解決方案 調用這句KeyEvent event=new KeyEvent
Delphi 小弟我想點擊菜單上面的一個按鈕後,直接就類式與按下了PrintScreen鍵,但是小弟我對鍵盤消息不是很清楚,大俠
我想點擊菜單上面的一個按鈕後,直接就類式與按下了PrintScreen鍵,但是我對鍵盤消息不是很清楚,請教各位大俠!我是這樣實現的: 在按鈕的單擊事件裡面這樣寫的: SendMessage(Handle,WM_KEYUP,VK_SNAPSHOT,0
Android Android 彈出菜單 - PathButton
Android 彈出菜單 ---- PathButton http://www.oschina.net/p/pathbutton
Android 點擊彈出層如何處理點擊到上面層
點擊彈出層如何避免點擊到下面層 。如在原來的列表上 放了一個隱藏顯示的ReltionLayout 裡面放了一些 選項 選擇排序或過濾條件,這時在列表上面彈出顯示這個ReltionLayout ,點擊這個ReltionLayout 空白處 沒有剛好點擊
C++ VS2010點擊菜單彈出對話框解決方案
VS2010點擊菜單彈出對話框在mfc下,新建一個菜單項,然後給它加一個消息處理函數,就是彈出一個對話框的。但是,加一個消息處理函數的前提是這個菜單的Popup屬性是false,可是,當popup屬性是false的時候,程序運行出來那個菜單項是灰色的,根本點不動,更不用說彈出對話框了。不知道這個情況大家有沒有遇到過呢
Web前端 jQuery點擊彈出上拉菜單
jQuery點擊彈出下拉菜單<title>導航——點擊彈出內容</title> <style type="text/css"> .navgation{margin:0;padding:0;list-style-type:none
Android android彈出菜單銀屏移動
android彈出菜單屏幕移動有這樣一個效果:從屏幕左邊彈出一個寬度為w對話框,然後屏幕裡面的activity就往左邊移動w距離。請問用什麼方法可以實現這個方法呢解決方案
ASP.NET 點擊按鈕彈出網頁的有關問題
點擊按鈕彈出網頁的問題請問一下各位,我在網頁上放置一個按鈕,點擊時彈出另一個頁面,在我的機子上運行時可以彈出,當把網站打包安裝到另一台電腦時,點擊按鈕,就彈不出網頁,這是是么問題,謝謝! 我按鈕中的代碼是這樣的 protected void
VB VB怎麼點擊網頁彈出提示窗口的按鈕
VB如何點擊網頁彈出提示窗口的按鈕某網頁,點擊按鈕後會出現一個彈出窗口,在網上找,在CSDN上問,會找出其彈出窗口的文字內容了,但是其上面還有是、否或確定取消一兩個按鈕,我現在不會點這個按鈕,大家支下招哈!解決方案 幫樓主頂一下... 解決方案 你這其實是一個dhtml問題吧,壇子中常有類似的問題的,搜索一下吧
VC/MFC 點擊按鈕後彈出另一個對話框解決方法
點擊按鈕後彈出另一個對話框用CDialog類做出一個選擇界面:一個按鈕 點擊此按鈕後,會彈出另外的一個對話框按鈕(裡面可以有輸入命令的編輯框,也有可以點擊確定的按鈕) 請問,該如何實現上述的功能? 如何調用? 請詳細些,謝謝!解決方案在擬新建的對話框類中加入Create 調用即可。 解決方案無模式
java Web開發 點擊按鈕,彈出保存、打開對話框解決方案
點擊按鈕,彈出保存、打開對話框怎樣在html頁面上加按鈕跟響應實現這個功能?就比如像平時網頁上看到的下載,一點就出來個對話框,有打開,保存,取消的,點保存還能選擇保存路徑的,怎麼搞???解決方案你只要把文件鏈接放到頁面上,其他的就是瀏覽器的事情了。 解決方案探討你只要把文件鏈接放到頁面上,其他的就是瀏覽器的事情
ASP.NET 如何點擊按鈕彈出一個小窗口
怎麼點擊按鈕彈出一個小窗口?我做的是投票系統點擊投票按鈕彈出一個小窗口 小窗口裡面是投票用的!~解決方案先做個隱藏的DIV,點擊時再顯示 解決方案window.openwindow.showModalDialogDiv第三方控制項 解決方案javascript 解決方案傳值可以跟url傳一樣吧。。?UserID
㈡ android如何彈出一個占屏幕一半的菜單
android彈出一個占屏幕一半的菜單,可以使用popupwindow,設置彈出的xy軸的距離占據屏幕一半即可,如下代碼:
packagecom.example.hellopopupwindow;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.util.Log;
importandroid.view.LayoutInflater;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.Button;
importandroid.widget.PopupWindow;
importandroid.widget.Toast;
{
privateContextmContext=null;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext=this;
Buttonbutton=(Button)findViewById(R.id.button);
button.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
showPopupWindow(view);
}
});
}
privatevoidshowPopupWindow(Viewview){
//一個自定義的布局,作為顯示的內容
ViewcontentView=LayoutInflater.from(mContext).inflate(
R.layout.pop_window,null);
//設置按鈕的點擊事件
Buttonbutton=(Button)contentView.findViewById(R.id.button1);
button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
Toast.makeText(mContext,"buttonispressed",
Toast.LENGTH_SHORT).show();
}
});
finalPopupWindowpopupWindow=newPopupWindow(contentView,
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,true);
popupWindow.setTouchable(true);
popupWindow.setTouchInterceptor(newOnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
Log.i("mengdd","onTouch:");
returnfalse;
//這里如果返回true的話,touch事件將被攔截
//攔截後PopupWindow的onTouchEvent不被調用,這樣點擊外部區域無法dismiss
}
});
//如果不設置PopupWindow的背景,無論是點擊外部區域還是Back鍵都無法dismiss彈框
//我覺得這里是API的一個bug
popupWindow.setBackgroundDrawable(getResources().getDrawable(
R.drawable.selectmenu_bg_downward));
//設置好參數之後再show
popupWindow.showAsDropDown(view);
}
}
㈢ android 怎麼實現點擊菜單在頂部和底部同時呼出不同的菜單選項
菜單是用戶界面中最常見的元素之一,使用非常頻繁,在Android中,菜單被分為如下三種,選項菜單(OptionsMenu)、上下文菜單(ContextMenu)和子菜單(SubMenu),以下說的是創建OptionsMenu
一、概述
public boolean onCreateOptionsMenu(Menu menu):使用此方法調用OptionsMenu。
public boolean onOptionsItemSelected(MenuItem item):選中菜單項後發生的動作。
public void onOptionsMenuClosed(Menu menu):菜單關閉後發生的動作。
public boolean onPrepareOptionsMenu(Menu menu):選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單。
public boolean onMenuOpened(int featureId, Menu menu):單打開後發生的動作。
二、默認樣式
默認樣式是在屏幕底部彈出一個菜單,這個菜單我們就叫他選項菜單OptionsMenu,一般情況下,選項菜單最多顯示2排每排3個菜單項,這些菜單項有文字有圖標,也被稱作Icon Menus,如果多於6項,從第六項開始會被隱藏,在第六項會出現一個More里,點擊More才出現第六項以及以後的菜單項,這些菜單項也被稱作Expanded Menus。下面介紹。
1.main.xml
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextViewandroid:layout_width="wrap_content"
android:layout_height="wrap_content"android:text="請點擊Menu鍵顯示選項菜單"
android:id="@+id/TextView02"/>
</LinearLayout>
2。重載onCreateOptionsMenu(Menu menu)方法
重載onCreateOptionsMenu(Menu menu)方法,並在此方法中添加菜單項,最後返回true,如果false,菜單則不會顯示。
(Menumenu)
@Override
(Menumenu){
/*
*
*add()方法的四個參數,依次是:
*
*1、組別,如果不分組的話就寫Menu.NONE,
*
*2、Id,這個很重要,Android根據這個Id來確定不同的菜單
*
*3、順序,那個菜單現在在前面由這個參數的大小決定
*
*4、文本,菜單的顯示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"刪除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以
//android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"幫助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"詳細").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"發送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
3。為菜單項注冊事件
使用onOptionsItemSelected(MenuItem item)方法為菜單項注冊事件
(MenuItemitem)
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"刪除菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"幫助菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"詳細菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"發送菜單被點擊了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
4.完整代碼
packagecom.android.menu;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.widget.Toast;
{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
(Menumenu){
/*
*
*add()方法的四個參數,依次是:
*
*1、組別,如果不分組的話就寫Menu.NONE,
*
*2、Id,這個很重要,Android根據這個Id來確定不同的菜單
*
*3、順序,那個菜單現在在前面由這個參數的大小決定
*
*4、文本,菜單的顯示文本
*/
menu.add(Menu.NONE,Menu.FIRST+1,5,"刪除").setIcon(
android.R.drawable.ic_menu_delete);
//setIcon()方法為菜單設置圖標,這里使用的是系統自帶的圖標,同學們留意一下,以
//android.R開頭的資源是系統提供的,我們自己提供的資源是以R開頭的
menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(
android.R.drawable.ic_menu_edit);
menu.add(Menu.NONE,Menu.FIRST+3,6,"幫助").setIcon(
android.R.drawable.ic_menu_help);
menu.add(Menu.NONE,Menu.FIRST+4,1,"添加").setIcon(
android.R.drawable.ic_menu_add);
menu.add(Menu.NONE,Menu.FIRST+5,4,"詳細").setIcon(
android.R.drawable.ic_menu_info_details);
menu.add(Menu.NONE,Menu.FIRST+6,3,"發送").setIcon(
android.R.drawable.ic_menu_send);
returntrue;
}
@Override
(MenuItemitem){
switch(item.getItemId()){
caseMenu.FIRST+1:
Toast.makeText(this,"刪除菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+2:
Toast.makeText(this,"保存菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+3:
Toast.makeText(this,"幫助菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+4:
Toast.makeText(this,"添加菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+5:
Toast.makeText(this,"詳細菜單被點擊了",Toast.LENGTH_LONG).show();
break;
caseMenu.FIRST+6:
Toast.makeText(this,"發送菜單被點擊了",Toast.LENGTH_LONG).show();
break;
}
returnfalse;
}
@Override
publicvoidonOptionsMenuClosed(Menumenu){
Toast.makeText(this,"選項菜單關閉了",Toast.LENGTH_LONG).show();
}
@Override
(Menumenu){
Toast.makeText(this,
"選項菜單顯示之前onPrepareOptionsMenu方法會被調用,你可以用此方法來根據打當時的情況調整菜單",
Toast.LENGTH_LONG).show();
//如果返回false,此方法就把用戶點擊menu的動作給消費了,onCreateOptionsMenu方法將不會被調用
returntrue;
}
}
5.運行效果
㈣ android 下如何實現一個 從屏幕某一水平位置向上彈出的菜單,並且菜單每行只有一個選項。
簡單直接點:
首先建立一個layout,布局為你想要的彈出後的菜單,然後將它隱藏掉。
在你想要彈出菜單的地方設置事件,當單擊後,把隱藏的菜單顯示出來,顯示的同時,設置菜單的坐標是動態的,例如你單擊的位置在屏幕的X:500 Y:500位置,拿你的菜單初始化應該在TOPX:500 TOPY:500,當你點擊按鈕處,把菜單show,同時,TOPX-- ,TOPY不變。過程中最好加淡入淡出效果,這樣更自然。
㈤ android開發了一個視頻播放器,現想在上面彈出一個菜單,不影響背景視頻播放,怎麼實現
使用popupwindow即可實現。
參考:http://blog.csdn.net/kkfdsa132/article/details/6403404
㈥ android的這種彈出菜單(窗口)怎麼實現
可以用popupWindow
public class PopUpActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater inflater = LayoutInflater.from(this);
// 引入窗口配置文件
View view = inflater.inflate(R.layout.main2, null);
// 創建PopupWindow對象
final PopupWindow pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);
Button btn = (Button) findViewById(R.id.btn);
// 需要設置一下此參數,點擊外邊可消失
pop.setBackgroundDrawable(new BitmapDrawable());
//設置點擊窗口外邊窗口消失
pop.setOutsideTouchable(true);
// 設置此參數獲得焦點,否則無法點擊
pop.setFocusable(true);
}
}
popupWindow.showAsDropDown(v);讓它出現在上方標題欄的下方
布局裡可以寫成listview,也可以寫成死布局
還有就是ActionBar,但個人感覺ActionBar沒有popupWindow靈活,反正我一般這種情況都會用popupWindow,看個人愛好
㈦ android 怎麼實現左側推出導航菜單
Android左側推出導航菜單可以讓Activity繼承PopupWindow類來實現的彈出窗體,布局可以根據自己定義設計。彈出效果主要使用了translate和alpha樣式實現。具體的做法是下列代碼:
第一步:設計彈出窗口xml:
Xml代碼
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/pop_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="@drawable/btn_style_alert_dialog_background"
>
<Button
android:id="@+id/btn_take_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="拍照"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>
<Button
android:id="@+id/btn_pick_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="從相冊選擇"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>
<Button
android:id="@+id/btn_cancel"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="15dip"
android:layout_marginBottom="15dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消"
android:background="@drawable/btn_style_alert_dialog_cancel"
android:textColor="#ffffff"
android:textStyle="bold"
/>
</LinearLayout>
</RelativeLayout>
第二步:創建SelectPicPopupWindow類繼承PopupWindow:
Java代碼
importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.drawable.ColorDrawable;
importandroid.view.LayoutInflater;
importandroid.view.MotionEvent;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.View.OnTouchListener;
importandroid.view.ViewGroup.LayoutParams;
importandroid.widget.Button;
importandroid.widget.PopupWindow;
{
privateButtonbtn_take_photo,btn_pick_photo,btn_cancel;
privateViewmMenuView;
publicSelectPicPopupWindow(Activitycontext,OnClickListeneritemsOnClick){
super(context);
LayoutInflaterinflater=(LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView=inflater.inflate(R.layout.alert_dialog,null);
btn_take_photo=(Button)mMenuView.findViewById(R.id.btn_take_photo);
btn_pick_photo=(Button)mMenuView.findViewById(R.id.btn_pick_photo);
btn_cancel=(Button)mMenuView.findViewById(R.id.btn_cancel);
//取消按鈕
btn_cancel.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//銷毀彈出框
dismiss();
}
});
//設置按鈕監聽
btn_pick_photo.setOnClickListener(itemsOnClick);
btn_take_photo.setOnClickListener(itemsOnClick);
//設置SelectPicPopupWindow的View
this.setContentView(mMenuView);
//設置SelectPicPopupWindow彈出窗體的寬
this.setWidth(LayoutParams.FILL_PARENT);
//設置SelectPicPopupWindow彈出窗體的高
this.setHeight(LayoutParams.WRAP_CONTENT);
//設置SelectPicPopupWindow彈出窗體可點擊
this.setFocusable(true);
//設置SelectPicPopupWindow彈出窗體動畫效果
this.setAnimationStyle(R.style.AnimBottom);
//實例化一個ColorDrawable顏色為半透明
ColorDrawabledw=newColorDrawable(0xb0000000);
//設置SelectPicPopupWindow彈出窗體的背景
this.setBackgroundDrawable(dw);
//mMenuView添加OnTouchListener監聽判斷獲取觸屏位置如果在選擇框外面則銷毀彈出框
mMenuView.setOnTouchListener(newOnTouchListener(){
publicbooleanonTouch(Viewv,MotionEventevent){
intheight=mMenuView.findViewById(R.id.pop_layout).getTop();
inty=(int)event.getY();
if(event.getAction()==MotionEvent.ACTION_UP){
if(y<height){
dismiss();
}
}
returntrue;
}
});
}
}
第三步:編寫MainActivity類實現測試:
Java代碼
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.TextView;
{
//自定義的彈出框類
;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextViewtv=(TextView)this.findViewById(R.id.text);
//把文字控制項添加監聽,點擊彈出自定義窗口
tv.setOnClickListener(newOnClickListener(){
publicvoidonClick(Viewv){
//實例化SelectPicPopupWindow
menuWindow=newSelectPicPopupWindow(MainActivity.this,itemsOnClick);
//顯示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main),Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL,0,0);//設置layout在PopupWindow中顯示的位置
}
});
}
//為彈出窗口實現監聽類
=newOnClickListener(){
publicvoidonClick(Viewv){
menuWindow.dismiss();
switch(v.getId()){
caseR.id.btn_take_photo:
break;
caseR.id.btn_pick_photo:
break;
default:
break;
}
}
};
}
上述的代碼實現了從底部彈出,也可以根據PopupWindow類設置從左下部彈出。
Android的對話框有兩種:PopupWindow和AlertDialog。它們的不同點在於:
AlertDialog的位置固定,而PopupWindow的位置可以隨意
AlertDialog是非阻塞線程的,而PopupWindow是阻塞線程的
PopupWindow的位置按照有無偏移分,可以分為偏移和無偏移兩種;按照參照物的不同,可以分為相對於某個控制項(Anchor錨)和相對於父控制項。具體如下
showAsDropDown(View anchor):相對某個控制項的位置(正左下方),無偏移
showAsDropDown(View anchor, int xoff, int yoff):相對某個控制項的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相對於父控制項的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以設置偏移或無偏移
㈧ android 點擊按鈕時顯示菜單應怎樣實現
點擊button彈出對話框菜單
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
{
privateButtonbutton;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewarg0){
newAlertDialog.Builder(choice.this)
.setTitle("choice")
.setItems(R.array.str_body,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
String[]aryshop=getResources().getStringArray(R.array.str_body);
newAlertDialog.Builder(choice.this)
.setMessage(aryshop[arg1])
.setNegativeButton("ok",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacearg0,intarg1){
//TODOAuto-generatedmethodstub
}
}).show();
}
}).show();
//TODOAuto-generatedmethodstub
}});
}
}
菜單項
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stringname="hello">HelloWorld,choice!</string>
<stringname="app_name">ChoiceMenu</string>
<stringname="strtitle">按我選擇:</string>
<stringname="str">你選擇的是:</string>
<arrayname="str_body">
<item>選項1</item>
<item>選項2</item>
<item>選項3</item>
<item>選項4</item>
<item>選項5</item>
<item>選項6</item>
</array>
</resources>