1,通用的做法:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //按下的如果是BACK,同时没有重复 Toast.makeText(android123.this,"Android开发网Back键测试",1).show(); return true; } return super.onKeyDown(keyCode, event); }
@Override public void onBackPressed() { }
2,今天认识到:当定义一个有参数的方法时,在方法实现上,就有必要对参数是否合法进行判断。这样会防止一些bug的出现。
3,EditText 不自动获取焦点
在其父控件上设置:
android:focusable="true"
android:focusableInTouchMode="true"
4,EditText setText的长度过长时,无法在末尾加上省略号,估计是系统的一个bug。可以通过给EditText
et.setOnFocusChangeListener()来实现没有焦点时添加省略号,拥有焦点时全部显示
et.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { int strLen = 10; String ss = "哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈"; String dotStr = "..."; if(!hasFocus){ if(ss.length() > strLen){ int end = strLen-dotStr.length(); et.setText(ss.substring(0, end)+"..."); }else{ et.setText(ss); } }else{ et.setText(ss); } CharSequence text = et.getText(); if (text instanceof Spannable) { Spannable spanText = (Spannable)text; Selection.setSelection(spanText, text.length()); } } });
CharSequence text = et.getText(); if (text instanceof Spannable) { Spannable spanText = (Spannable)text; Selection.setSelection(spanText, text.length()); }
5,webview 在加载前显示Loading框,加载完毕后去掉。可以这么干:一,在WebViewClient onPageStarted()中显示,在onPageFinished()中消失。二:起一个Timer,监视wv.getProgress(),当其值等于100时,去掉Loading。
Demo后发现,load一个url时可能会多次调用onPageStartd()和onPageFinished(),所以会多次显示和去除Loading框。用第二种方法判断progress的方法就不会多次显示了!
参考 http://blog.csdn.net/WOSHICAIXIANFENG/article/details/6778879#comments