Android开发经验总结
16lz
2021-01-24
1. 开关高度最好不要用wrap_content 点击范围太小,不灵敏;
2. EditText当输入内容不符合要求时,主动弹出软盘并光标在最后让用户重新输入
needleNameEdit.setFocusable(true); needleNameEdit.setFocusableInTouchMode(true); needleNameEdit.requestFocus(); needleNameEdit.setSelection(needleNameEdit.getText().toString().length()); InputMethodManager inputManager = (InputMethodManager)needleNameEdit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(needleNameEdit, 0);
当在onCreate()中或者在editText.setVisibility(View.Visible)弹出键盘时 此时键盘不会弹出 需要使用延时来处理。
editText.postDelayed(new Runnable() { @Override public void run() { InputMethodManager imm = (InputMethodManager) editText.getContext().getSystemService(Context .INPUT_METHOD_SERVICE); imm.showSoftInput(editText, 0); } }, 200);
3. 设置自定义字体
AssetManager mgr = getAssets(); Typeface fontFace = Typeface.createFromAsset(mgr, "fonts/weac_slogan.ttf"); TextView SloganTv = (TextView) findViewById(R.id.weac_slogan_tv); SloganTv.setTypeface(fontFace);
4.Gson解析List数据
- 方法一:
Gson gson = new Gson(); Type type = new TypeToken<List<Object>>() {}.getType(); List<Object> list = gson.fromJson(jsonlist, type);
- 方法二:
//Json的解析类对象 JsonParser parser = new JsonParser(); //将JSON的String 转成一个JsonArray对象 JsonArray jsonArray = parser.parse(jsonlist).getAsJsonArray();Gson gson = new Gson();ArrayList<Object> list= new ArrayList<>();//加强for循环遍历JsonArrayfor (JsonElement item: jsonArray) { //使用GSON,直接转成Bean对象 Object ob= gson.fromJson(item, Object.java; list.add(userBean);}
5. 获取当年Fragment
// 方法一 Fragment current = getSupportFragmentManager().findFragmentById(R.id.contain); //方法二 FragmentManager fragmentManager = getSupportFragmentManager(); List<Fragment> fragments = fragmentManager.getFragments(); for (Fragment fragment : fragments) { if (fragment != null && fragment.isVisible()){ return fragment; } }
6. 打印csdn文章
//步骤 1:去掉文章详情页除文章内容外的内容(function(){$("#side").remove();$("#comment_title, #comment_list, #comment_bar, #comment_form, .announce, #ad_cen, #ad_bot").remove();$(".nav_top_2011, #header, #navigator").remove();$(".p4course_target, .comment-box, .recommend-box, #csdn-toolbar, #tool-box").remove();$("aside").remove();$(".tool-box").remove();$("main").css('display','content'); $("main").css('float','left'); $("tool-box").remove();})();// 步骤 2:选中需要打印的内容Ctrl+A//步骤 3:打印(Chrome:Ctrl+p)
7. 获取状态栏高度
private int getStatusBarHeight() { try { Class<?> c = Class.forName("com.android.internal.R$dimen"); Object obj = c.newInstance(); Field field = c.getField("status_bar_height"); int x = Integer.parseInt(field.get(obj).toString()); return getResources().getDimensionPixelSize(x); } catch (Exception e) { e.printStackTrace(); } return 0; }
更多相关文章
- Android抓包方法
- okhttp源码学习分析一
- Android倒计时实现
- android dialog 背景透明的样式
- Android(安卓)框架:快速开发中Util常用工具类总结
- Android之动态改变控件大小
- radiolog不全的问题
- Android中调试规范Log
- android音乐播放器(4)