Android知识点笔记

来源:互联网 发布:linux jdk 安装 编辑:程序博客网 时间:2024/05/22 01:32

1、隐藏控件GONE和LNVISIBLE的区别

GONE:彻底移除控件,原占位也被移除。

LNVISIBLE:隐藏控件,但控件仍占原位置。

2、字符串判断是否为空equals()和TextUtils.isEmpty()的区别

equals():字符串内容不能为null,为null是报错

TextUtils.isEmpty():字符串为null或“”时,都返回true

3、在Adapter中的getView()方法里会用到mInflater.inflate(R.layout.list_item,null)方法,这里建议使用三个参数mInflater.inflate(R.layout.list_item, convertView, false)。两个参数时,list_item.xml中的最外层设置无效(例如高度、背景等),false返回我们的list_item,true返回convertView(list_item加载到convertView中后返回)。

4、Tab的实现方法

a.ViewPager:拥有滑动效果。

b.Fragment:各页面代码分离,便于管理。

c.ViewPager+FragmentPagerAdapter:滑动效果+代码分离,如果不需要滑动效果建议使用Fragment。

d.ViewPagerIndicator:开源框架,使用简单。下载地址

5、特殊属性

android:keepScreenOn 保持屏幕唤醒

6、系统信息

手机型号:android.os.Build.MODELSDK版本:android.os.Build.VERSION.SDK系统版本:android.os.Build.VERSION.RELEASE

7、设置ViewPager缓存当前页左右两边的页数,即设为2,则会缓存5页,左右各2页和当前页。

viewPager.setOffscreenPageLimit(int i)

8、Json数据解析时,接收参数为空时的处理。

object.getString("id");id参数不存在时,异常

object.optString("id");参数不存在时,为空

object.optString("id", "-1");参数不存在时,为默认值

9、判断服务器返回数据是否为Json格式

public boolean mayBeJSON(String str){return str != null&& ("null".equals(str)|| (str.startsWith("[") && str.startsWith("]")) || (str.startsWith("{") && str.startsWith("}")));}
public boolean isJson(String value) { try { new JSONObject(value); } catch (JSONException e) { return false;} return true;} 
10、弹出框点击屏幕取消设置

dialog.setCanceledOnTouchOutside(false);//用来设置点击屏幕弹出框不消失,点击返回键消失

dialog.setCancelable(true);//点击返回键也不消失

11、Activity销毁时数据保存,多用于横竖屏切换

@Overrideprotected void onSaveInstanceState(Bundle outState) {// TODO Auto-generated method stubsuper.onSaveInstanceState(outState);outState.putString("text", "保存数据");}
取数据在onCreate方法中通过参数savedInstanceState获取

if (savedInstanceState != null) {String str = savedInstanceState.getString("text");}

12、解决ScrollView中嵌套ListView滑动冲突问题

listView.setOnTouchListener(new View.OnTouchListener() {          @Override      public boolean onTouch(View v, MotionEvent event) {          if(event.getAction() == MotionEvent.ACTION_UP){              scrollView.requestDisallowInterceptTouchEvent(false);          }else{              scrollView.requestDisallowInterceptTouchEvent(true);          }          return false;      }  });
13、小数保存固定位数
String str = String.format("%.2f", 3.1415); //保留两位小数

14、获取AndroidManifest.xml中的meta-data数据:

ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);StatService.setAppKey(appInfo.metaData.getString("data_name"));

0 0