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.MODEL
SDK版本: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銷燬時數據保存,多用於橫豎屏切換
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.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"));