代码随记!

来源:互联网 发布:java如何安装与卸载 编辑:程序博客网 时间:2024/04/30 06:14

spnnier 根据 getSelectedItemPosition获得选中的Id
getSelectedItem().toString获得选中的值
setSelection(1);自定义显示第一列

获取枚举值的位置 ordinal()

活动的四种启动模式 : standard(默认)
singleTop模式
singleTask模式
singleInstance模式
活动都是由Task管理

XML解析的两种方式; SAX , PULL

http访问网络的两种方式 : HttpURLConnection HttpClient

Json服务器返回数据解析,官方提供两个类: JsonObject JsonArray

android6.0后不能使用FloatMath , 用Math代替

遍历Map<>类型数据最快的方式

如 Map<String,double>detail;     for(String key , detail.keySet()){     system.out.prinlt(key);     system.out.prinlt(detail.get(key));     }

当ScrollView中嵌套ListView时出现冲突的解决方法: 当手指触摸到ListView时,让父控件交出onTouch权限,不能滚动,松开手指时,父控件重新获取onTouch权限

format(“%.2f”) 小数点保留两位

正则表达式主要有以下三个类处理: Pattern patternSyntaxException Matcher

程序点击Home键时再回到程序的执行顺序 : onPause onStop onRestart onStart onResume
点击Back时再回到程序的执行顺序: onPause onStop onDestory onCreate onStart onResume

获取当前界面的布局即ViewGroup: View view = ((ViewGroup) layout).getchildAt(index);

获取当前ViewGroup里的子View获得焦点的View: View view=((ViewGroup)layout).getFocusedchild();

在子线程更新UI造成不安全等因素:
处理方式: 1.定义主线程Hanlder,通过发送消息
2.指定UI更新:如TextView.post(…..)
3.通风runOnUiThread线程进行更新

在主线程不能进行网络请求等耗时操作

Fragment碎片(可加载两种方式)
1.滑动 viewpager(设置适配器)
2固定 Fraglayout(向视图填充)

在Fragment嵌套Fragment时,从子Fragment通过接口回调的方式来对父Fragment进行改变
在子fragment的OnAttach方法里判断宿主是否实现了接口
宿主为Activity时: mCallback = (接口)Activity
宿主为Fragment时: mCallback=(接口)getParentFragment
父fragment来实现方法

注意点: 1.Fragment嵌套Fragment时,获取管理事务用getchildFragmentManger
2.Activity的话用getFragmentManger

Fragment两种切换方式:
1 replace方法:采用替换方式,不可保留状态,每次都会创建新的
2 add-hide-show方式,会保留状态,把不需要的hide掉(隐藏)

在内部子容器回调给父容器时,在实现接口时,应把接口绑定在指定父容器,否则子容器控制父容器,超出了对象的权限范围

传递数据进行序列化时,面对如Bitmap,InputStream等,不可写入序列化

java中排序内置函数
实现接口Comparator接口排序
compare(Object first,Object second);
return 0 相等
return 1 第一个小于第二个
return 2 第一个大于第二个

判断字符串是否存在某一个特点字:string.indexof(“j”)>-1(大于-1表示存在)

截取特定字符位置的字符: split(“,”)[0]或者substring(0,1);

//在一个界面中有键盘打开,执行finish方法不能使键盘隐藏,键盘还会在上一个界面显示

   思路方法(在finish之前先关掉键盘)   InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);            if (imm.isActive() && getCurrentFocus() != null) {                if (getCurrentFocus().getWindowToken() != null) {                    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);                }            }      扩展   //此方法,如果显示则隐藏,如果隐藏则显示private void hintKbOne() {InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);    // 得到InputMethodManager的实例if (imm.isActive()) { // 如果开启imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,InputMethodManager.HIDE_NOT_ALWAYS);          }}

复写DropDownViewResource方法,定制spinner下弹选项样式

Spinner一个特殊点(在同一个选项时是不会执行setOnItemSelectionListener监听)

setOnEditorActionListener监听方法(该方法在EditText编辑完点击软键盘的回车键触发)

SparseArray数组 获取指定位置的数据方法(valueAt(i))

动态设置dialogfragment的大小时,可以在dialogfragment生命周期为onStart时进行设置如下:

Dialog dialog = getDialog();if(dialog!=null){DisplayMetrics dm = new DisplayMetrics();getActivity.getWindowManager().getDefaultDisplay.getMetrics(dm);dialog.getWindow.setLayout((int)(dm.widthPixels*0.96),(int)(dm.widthPixels*0.96));//或者设置ViewGroup.layoutParams.WRAP_CONTENT}

/* 利用正则提取验证码(根据实际情况修改) */
Pattern pattern = Pattern.compile(“(\d{6})”);//提取六位数字
Matcher matcher = pattern.matcher(body);//进行匹配
//简单方法:String a; a.matcher(“\d{6}”);直接匹配

String.text.Html方法:采用Html方式给text进行属性赋值

2 0
原创粉丝点击