zoukankan      html  css  js  c++  java
  • Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏

    private void showMyDialog(int layoutId){ 
         AlertDialog myDialog = new 
         AlertDialog.Builder(context).create(); 
         myDialog.show(); 
         Window window = myDialog.getWindow(); 
         window.setContentView(layoutId); 
         window.setGravity(Gravity.CENTER); 
         window.setLayout(LayoutParams.MATCH_PARENT,     
         LayoutParams.WRAP_CONTENT); 
    }

    方法 2 

    private void showMyDialog(int layoutId){ 
        LayoutInflater inflater = LayoutInflater.from(mContext); 
        View fourView = inflater.inflate(layoutId, null); 
        AlertDialog myDialog = new             
        AlertDialog.Builder(context).create(); 
        myDialog.show(); 
        myDialog.getWindow().setContentView(fourView); 
    }

    以上二种方法都可以自定义Dialog,并且效果还不错,但是如果Dialog里面有EditText就会遇到一个问题,怎么样 
    都打不开软键盘,也就无法输入,如果碰到这种情况的话,请看第三种写法: 
    方法 3 

    private void showMyDialog(int layoutId){ 
        LayoutInflater inflater = LayoutInflater.from(mContext); 
        View fourView = inflater.inflate(layoutId, null); 
        AlertDialog myDialog = new 
        AlertDialog.Builder(context).create(); 
        //加上以下这句代码 
        myDialog.setView(((Activity)     
        mContext).getLayoutInflater().inflate(layoutId, null)) 
        myDialog.show(); 
        myDialog.getWindow().setContentView(fourView); 
    }    

    全屏覆盖状态栏显示加上以下代码: 

    window.setType(WindowManager.LayoutParams.TYPE_APPLICATION_PANEL); 
    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

    弹出软键盘:

    window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
    InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputManager.showSoftInput(passwordEt, InputMethodManager.SHOW_FORCED);

    隐藏软键盘:

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
    InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputManager.hideSoftInputFromWindow(mPasswordInputEt.getWindowToken(),0);
  • 相关阅读:
    VC++2012编程演练数据结构《25》线索二叉树
    VC++2012编程演练数据结构《26》最大堆二叉树
    VC++2012编程演练数据结构《19》散列文件
    VC++2012编程演练数据结构《21》二叉排序树
    VC++2012编程演练数据结构《23》二叉树排序
    VC++2012编程演练数据结构《22》常规排序算法
    VC++2012编程演练数据结构《27》最小堆二叉树
    VC++2012编程演练数据结构《20》索引文件
    自从来到了上海,开始工作以来就没怎么到博客园
    Graphics 单元中的类
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/9681115.html
Copyright © 2011-2022 走看看