Android知識點筆記

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"));

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章