android 彈出對話方塊時顯示鍵盤
今天,簡單講講如何在彈出自定義的對話方塊時,彈出軟鍵盤。
之前,我講了如何製作自定義的對話方塊,現在,如果在彈出對話方塊時,自動彈出軟鍵盤,將游標直接聚焦到自定義對話方塊的輸入框內,那該怎麼做呢?
在網上搜索資料,找到了兩種程式碼,可以解決。
一.監聽對話方塊彈出事件。
實現的關鍵之處就是給AlertDialog新增一個顯示監聽器,顯示的時候將鍵盤顯示出來。
主程式:
package com.example.alertdialog; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnShowListener; import android.os.Bundle; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View v){ if(v.getId() == R.id.btn_show_dialog){ showDialog(this); } } public void showDialog(final Context context){ AlertDialog.Builder dialog = new AlertDialog.Builder(context); dialog.setTitle("請輸入驗證碼"); final EditText et = new EditText(context); et.setHint("in put your confirm code"); dialog.setView(et);//給對話方塊新增一個EditText輸入文字框 //給對話方塊新增一個確定按鈕,同樣的方法可以新增一個取消按鈕 dialog.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { Toast.makeText(context, "提交驗證碼……", 3000).show(); } }); //下面是彈出鍵盤的關鍵處 AlertDialog tempDialog = dialog.create(); tempDialog.setView(et, 0, 0, 0, 0); tempDialog.setOnShowListener(new OnShowListener() { public void onShow(DialogInterface dialog) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT); } }); tempDialog.show(); } }
佈局檔案:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="彈出對話方塊包含EditText時自動顯示鍵盤" /> <Button android:id="@+id/btn_show_dialog" android:text="輸入驗證碼" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="onClick" /> </LinearLayout>
執行之後點選按鈕則彈出對話方塊,同時彈出鍵盤。
二.在彈出對話方塊後,是輸入框獲得焦點,並且彈出對話方塊。
可以在自定義的dialog中增加如下方法:
public void showKeyboard() { if(editText!=null){ //設定可獲得焦點 editText.setFocusable(true); editText.setFocusableInTouchMode(true); //請求獲得焦點 editText.requestFocus(); //呼叫系統輸入法 InputMethodManager inputManager = (InputMethodManager) editText .getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }
在dialog.show()後,
dialog.show();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
dialog.showKeyboard();
} }, 300);
第二種程式碼更加靈活,效果更好,建議使用第二種程式碼。
android 彈出對話方塊時顯示鍵盤就講完了。
就這麼簡單。
相關推薦
android 彈出對話方塊時顯示鍵盤
今天,簡單講講如何在彈出自定義的對話方塊時,彈出軟鍵盤。 之前,我講了如何製作自定義的對話方塊,現在,如果在彈出對話方塊時,自動彈出軟鍵盤,將游標直接聚焦到自定義對話方塊的輸入框內,那該怎麼做呢? 在網上搜索資料,找到了兩種程式碼,可以解決。 一.監聽對話方塊彈出事件
彈出對話方塊時,點選“取消”表單仍然提交的解決方法
大家在實際工作中用js的時候可能會遇到這種情況:confirm()彈出的對話方塊,當用戶點選“取消”的時候,表單仍然提交的問題; 一般來說這種問題產生的原因有一下幾點:1:在判斷comfirm ()為“取消”的時候,我們沒有返回false;即:if(!comfirm(“確定要提交表單嗎?”)){ &
Android彈出對話方塊--Alertdialog(系統自帶的)
一. 我們在平時做開發的時候,免不了會用到各種各樣的對話方塊,相信有過其他平臺開發經驗的朋友都會知道,大部分的平臺都只提供了幾個最簡單的實現,如果我們想實現自己特定需求的對話方塊,大家可能首先會想到,通過繼承等方式,重寫我們自己的對話方塊。當然,這也是不失為一個不錯的解決方
android彈出對話方塊中帶有確定和取消對話方塊帶事件的應用
上次看了一個關於android中對話方塊的使用,其中對帶確定和取消的對話方塊講的並不詳細,自己補全了一下,當確定和取消按鈕中有事件時的情況,沒事件時用null就行了 new AlertDialog.Builder(this).setTitle("標題").setMessag
Android 自定義彈出對話方塊顯示不全的問題
昨天需要用自定義AlertDialog來實現一項功能,步驟大體是: 1.自定義佈局檔案 2.初始化AlertDialog,並設定setView 3.按鈕 文字框啥的處理 為了偷懶直接copy工程裡面同事完成的對話方塊。但是我修改後效果卻不一樣,先看我的佈局檔案圖示: 這
Android安卓自定義由底部彈出對話方塊
努力不一定立刻會有好的結果,但一定是朝著好的方向 ——李尚龍 《你所謂的穩定,不過是在浪費生命》
android開發入門 點選按鈕彈出對話方塊
1、在layout中新增按鈕 2、在MainActivity中新增以下函式 public void showDialog(View view){ AlertDialog.Builder builder=new AlertDialog.Builder(this);
Android ListView長按彈出對話方塊
ListView長按彈出對話方塊可以用PopupWindow實現 今天記錄的是重寫onCreateContextMenu和onContextItemSelected實現彈出對話方塊,比前者簡單很多
Android中使用廣播接收者來彈出對話方塊的坑
琢磨了老半天,試了一下網上說的一種方法,我發現不行,這種方法是這樣的: 1.首先註冊靜態廣播 2.在清單中新增許可權 <uses-permission android:name="android
android——自動檢測網路變化,斷網彈出對話方塊提示
一、首先,建立一個類繼承BroadcastReceiver,重寫onReceive 方法 在onReceive方法中新增操作程式碼 二、在MainActivity中添加註冊操作 三、別忘了,在AndroidManifest.xml中新增許可權 <
《重灌系統時重啟介面彈出對話方塊(計算機意外地重新啟動或遇到錯誤,Windows安裝無法繼續……)》
原因:系統盤空間不足 方法: 用4G以上的U盤製作啟動盤,裡面提前放好要裝的系統映象,然後重啟電腦用它進入PE,去裡面格式化你的c盤(系統盤),就可以安裝系統映象了。 (以後儘量別用裝機版、ghost
android退出應用:彈出對話方塊退出應用
(1)定義棧,寫一個Exitactivity 類,利用單例模式管理Activity,在每個在Activity 的onCreate()方法中呼叫Exitactivity.getInstance().addActivity(this)方法,在退出時呼叫Exitactivity.
Android按返回鍵彈出對話方塊退出應用程式
在當前的Activity中新增以下程式碼:import android.app.Activity; import android.app.AlertDialog; import android.con
Qt 關於彈出對話方塊,實現居中顯示!
本人實現的是 QFrame 居中! 因為要實現QFrame 彈出居中顯示。。 在QFrame->show之前實現move,但是這樣是取不到QFrame真實的大小! 在QFrame->show之後實現move,這時move就會出現閃屏的現象發生。 用resi
AngularJS進階(六)AngularJS+BootStrap實現彈出對話方塊
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
JavaScript中的三種彈出對話方塊
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
js--彈出對話方塊、改變控制元件內容、驗證輸入郵箱的合法性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript">
$.ligerDialog彈出對話方塊
http://tw.kmust.edu.cn/js/plugins/dialog/index.html 對話方塊使用時可以使用動態載入,比如,下面顯示一個彈框可以這樣寫:展開程式碼檢視程式碼 列印? 1.//使用using函式動態載入需要的模組、js、css檔案 2
JavaScript彈出對話方塊alert、confirm、prompt
1、alert()–警告訊息框 alert 方法有一個引數,即希望對使用者顯示的文字字串。該字串不是 HTML 格式。該訊息框提供了一個“確定”按鈕讓使用者關閉該訊息框,並且該訊息框是模式對話方塊, 也就是說,使用者必須先關閉該訊息框然後才能繼續進行操作。 例如:
JSP彈出對話方塊方式小結
JSP 網頁在與使用者互動的過程中,有時需要彈出提示框,通知使用者一些資訊,如登入密碼錯誤等 在做JSP網頁專案中, 實踐並總結了三種有效的方式 方式1: JSP前端 <script type="text/javascript" language="javascr