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">