android模態
① android怎樣實現彈出多個輸入對話框
1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="horizontal"
android:id="@+id/dialog">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvname" android:text="姓名:" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
</LinearLayout>
2.調用代碼
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.dialog,
(ViewGroup) findViewById(R.id.dialog));
new AlertDialog.Builder(this).setTitle("自定義布局").setView(layout)
.setPositiveButton("確定", null)
.setNegativeButton("取消", null).show();
簡單來說就是自定義dialog就好了
在裡面創建兩個對話框,也就是edittext
你試試看我這個代碼。
② android 彈出輸入框並得到輸入框的結果
不用找了,這才是正解。你的需求其實是,需要一個阻塞式對話框,安卓本身所有彈窗都是非阻塞的。
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.EditText;
/**
* 動態獲取用戶輸入後在繼續後面的流程
* 這是一個模態阻塞對話框(阻塞主線程,結果不用回調來處理)
*/
public class BlockingInputDialog {
String mInputString = "";
Activity mContext;
String mTitle;
EditText mEditText;
Handler mHandler;
public BlockingInputDialog(Activity context, String title){
mContext = context;
mTitle = title;
}
public String showDialog(){
mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
//super.handleMessage(msg);
throw new RuntimeException();
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(mTitle);
builder.setCancelable(false);
mEditText = new EditText(mContext);
builder.setView(mEditText);
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mInputString = mEditText.getText().toString();
Message message = mHandler.obtainMessage();
mHandler.sendMessage(message);
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
try {
Looper.getMainLooper().loop();
}
catch(RuntimeException e2)
{
}
return mInputString;
}
}
③ android如何彈出一個占屏幕一半的菜單
android彈出一個占屏幕一半的菜單,可以使用popupwindow,設置彈出的xy軸的距離占據屏幕一半即可,如下代碼:
java">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 彈出dialog時activity的生命周期處在什麼狀態
處於pause狀態。
當 Activity失去焦點, 被一個新的非全屏的Activity 或者一個透明的Activity (如彈窗dialog)被放置在棧頂,此時的狀態叫做暫停狀態(Paused)。
此時它依然與窗口管理器保持連接,Activity依然保持活力(保持所有的狀態,成員信息,和窗口管理器保持連接),但是在系統內存極端低下的時候將被強行終止掉。所以仍然可見,但已經失去了焦點故不可與用戶進行交互。
(4)android模態擴展閱讀:
activity的其它狀態:
1、運行:如果當前的activity在前台界面上時(堆棧頂端)。
2、停止:如果activity完全被另一個全屏活動遮擋住時,它將會停止。該活動也仍保留全部的狀態和成員信息,但將會被隱藏起來不再展示給用戶,並且當內存在其他地方被需要時該活動就將會被系統殺死。
3、重啟:如果activity處於暫停或者停止狀態,系統將會在內存中終止該活動無論是結束活動或者殺死進程。當它再一次展示給用戶時,它必須是完全重啟並且恢復到之前的狀態。
⑤ android彈出的布局背景設置為不透明
引用style
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--邊框-->
<item name="android:windowIsFloating">true</item><!--是否浮現在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--無標題-->
<item name="android:windowBackground">@color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">false</item><!--模糊-->
</style>
⑥ Android開發,點擊按鈕彈出對話框的問題
這里報錯是代碼寫法有誤,建議一行一行代碼的寫。
具體實現代碼:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();
⑦ android中有沒有類似ShowMessage那種模態對話框
給個例子好了
importandroid.app.Activity;
importandroid.app.Dialog;
importandroid.os.Handler;
importandroid.os.Looper;
importandroid.os.Message;
importandroid.text.method.PasswordTransformationMethod;
importandroid.text.method.TransformationMethod;
importandroid.view.View;
importandroid.widget.CheckBox;
importandroid.widget.EditText;
importandroid.widget.TextView;
{
intdialogResult;
HandlermHandler;
publicPasswordDialog(Activitycontext,StringmailName,booleanretry)
{
super(context);
setOwnerActivity(context);
onCreate();
TextViewpromptLbl=(TextView)findViewById(R.id.promptLbl);
promptLbl.setText("請輸入密碼/n"+mailName);
}
publicintgetDialogResult()
{
returndialogResult;
}
publicvoidsetDialogResult(intdialogResult)
{
this.dialogResult=dialogResult;
}
/**.*/
publicvoidonCreate(){
setContentView(R.layout.password_dialog);
findViewById(R.id.cancelBtn).setOnClickListener(newandroid.view.View.OnClickListener(){
@Override
publicvoidonClick(ViewparamView)
{
endDialog(DialogResult.CANCEL);
}
});
findViewById(R.id.okBtn).setOnClickListener(newandroid.view.View.OnClickListener(){
@Override
publicvoidonClick(ViewparamView)
{
endDialog(DialogResult.OK);
}
});
}
publicvoidendDialog(intresult)
{
dismiss();
setDialogResult(result);
Messagem=mHandler.obtainMessage();
mHandler.sendMessage(m);
}
publicintshowDialog()
{
mHandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemesg){
//processincomingmessageshere
//super.handleMessage(msg);
thrownewRuntimeException();
}
};
super.show();
try{
Looper.getMainLooper().loop();
}
catch(RuntimeExceptione2)
{
}
returndialogResult;
}
}
⑧ 請教實現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開發 彈出許可權提示框 檢查是否具有某個許可權
可以使用以下方法:
判斷應用是否具有某個許可權
PackageManager pm = getPackageManager();
boolean permission = (PackageManager.PERMISSION_GRANTED ==
pm.checkPermission("android.permission.RECORD_AUDIO", "packageName"));
if (permission) {
showToast("有這個許可權");
}else {
showToast("木有這個許可權");
}
獲取某個應用的許可權清單
PackageInfo pack = pm.getPackageInfo("packageName",PackageManager.GET_PERMISSIONS);
String[] permissionStrings = pack.requestedPermissions;
⑩ android里有非模態對話框嗎
非模態對話框就是Dialog吧,android中的dialog實例代碼為:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();