日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 弹出对话框时显示键盘

發布時間:2024/4/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 {@Overrideprotected 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() {@Overridepublic 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"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="彈出對話框包含EditText時自動顯示鍵盤" /><Buttonandroid: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 弹出对话框时显示键盘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。