zoukankan      html  css  js  c++  java
  • android开发笔记(一)Android studio 输入法

    以前都是用的时候查资料做些增添即可,现在下决心系统学习下。

    首先发现developer.Android.com在开发工具上开始推出了 Android Studio了,不过他自己没有sdk manager,还得下载这个。然后设置下sdk目录才能使用。新建项目的目录和名字也以前的ADT开发工具有些不同。不过res,src这些都是一样的。所以还是可以两个人以上共同开发。

    先说个很大不同的,就是AndroidMainfest.xml文件,里面的内容比ADT的要少,因为有部分被挪到了build.gradle,因为Android Studio采用的是gradle来构建项目的,比如最低android版本的要求之类放到这个文件里了。下面给个截图

    第二个实例里有输入框,然后用到了自动隐藏键盘的一段代码。

    im_ctrl = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

    im_ctrl.hideSoftInputFromWindow(user_name.getWindowToken(), 0);

    显示键盘的方法是 im_ctrl.showSoftInput(editText, 0);  

    还有个如果要在应用一打开就显示输入键盘的话,不能直接用showSoftInput 方法,不能直接在OnCreate中设置,必须等View绘制事件完毕才可以弹出,需要用到Timer辅助实现,如果要实现输入的功能,必须让EditText获得焦点。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    user_name = (EditText) findViewById(R.id.user_name);
    btn_ok.setOnClickListener(ok_handle);
    im_ctrl = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
    @Override
    public void run() {
    Looper.prepare();
    InputMethodManager imm = (InputMethodManager)MainActivity.this.getSystemService(INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
    Toast.makeText(MainActivity.this, "Hello", Toast.LENGTH_LONG).show();//此行没有体现出来,不知道什么原因,要加此行,必须有 前面的 Looper.prepare();
    }
    }, 1000);

    这里有个 Looper.prepare();的问题。原因是出现这种问题的原因是因为Android中不能在子线程中来刷新UI线程。可能是因为这个所以那个提示我没看到。

    禁止弹出输入键盘是如下设置的,不知道什么时候用,先知道下吧。

        android:name=".ClientSearchViewActivity"
                android:label="@string/app_name" 
                android:screenOrientation="portrait"
                android:windowSoftInputMode="adjustUnspecified|stateHidden"
                android:configChanges="orientation|keyboardHidden">

  • 相关阅读:
    每日一道 LeetCode (11):外观数列
    每日一道 LeetCode (10):搜索插入位置
    每日一道 LeetCode (9):实现 strStr()
    每日一道 LeetCode (8):删除排序数组中的重复项和移除元素
    每日一道 LeetCode (7):合并两个有序链表
    每日一道 LeetCode (6):有效的括号
    Python 图像处理 OpenCV (16):图像直方图
    每日一道 LeetCode (5):最长公共前缀
    每日一道 LeetCode (4):罗马数字转整数
    每日一道 LeetCode (3):回文数
  • 原文地址:https://www.cnblogs.com/wayne173/p/4106217.html
Copyright © 2011-2022 走看看