編輯:關於android開發
ListView講解:
一、ListView這個控件是一個使用非常廣泛的控件,值得深入的學習和研究。基本使用已經在Adapter中使用過了
二、常用的屬性和方法
footerDividersEnabled:是否在footerView(表尾)前繪制一條分割線,默認是true
headerDividersEnabled:是否在headerView(表頭)後繪制一條分割線,默認是true
divider:設置分割條,可以是顏色分割,也可以用drawable資源分割
dividerHeight:設置分隔條的高度
stackFromBottom:列表從底部開始顯示,設置為true即可,好像沒什麼用。
cacheColorHint:如果你為ListView設置了一個圖片作為Background的時候,當你拖動或者點擊listView空白位置會發現item變成了變成黑色了,這是時候我們通過這個擦車ColorHint將顏色設置為透明:#000000
scrollbars ="none"或者setVerticalBarEnabled(true)隱藏滑動條
添加listView的表頭或者表尾貌似只能在Java中操作
addHeaderView(View view):添加HeaderView(表頭),括號裡面是一個View對象,可以通過context上下文對象獲得。
addFooterView(View view):添加foot二View(表尾),括號裡面是一個view對象,同樣也是可以通過context上下文對象獲得。
addHeaderView(headerView,null,false):和上面的區別:設置Header是否可以被選中
addFooterView(footerView,null,false):和上面的區別;設置footer是否可以被選中
三、listView的焦點問題
如果向item中添加button,checkBox等等控件的時候,這時我們就需要考慮焦點的問題
當寫一個簡單的listView,上面如果含有Button,checkBox的時候,點擊item不起作用,也就是不能觸發onItemClick事件,也就是說listView的焦點被其它控件搶占了。
解決的辦法:
方法1、為搶占控件設置android:focusable = "false"
方法2、item根節點設置android:descendantFocusability = "blocksDescendants",屬性值有三種選擇
beforeDescendants:這個值表示ViewGroup會優先其子類控件而獲取焦點
afterDescendants:這個值表示ViewGroup會當子類的控件不需要獲取焦點的時候才獲取焦點
blocksDescendants:這個值表示ViewGroup會覆蓋子類控件而直接獲得焦點
四、listView關於CheckBox的選擇錯位問題。
方法一、可以放到一個HashMap<Integer, Boolean>中, 每次初始化的時候根據postion取出對應的boolean值,然後再進行checkbox的狀態設置;也就是
HashMap<Integer, Boolean> state = new HashMap<Integer,Boolean>();
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked)
{
state.put(position, isChecked);
}else{
state.remove(position);
}
}
在getView()方法裡面: holder.cbox.setChecked(state.get(position)==null? false : true);
方法二、在entity類中加入了一個boolean值用於判斷
五、listView的數據更新(增刪改查)
以增加為例調用notifyDataSetChanged()方法
step1:在我們自定義的BaseAdapter中添加一個更新數據的方法:
step2:在activity中設置按鈕的監聽事件,來增加一條數據
對於更新數據每次調用notifyDataSetChanged(),這個方法實際上會把界面的item都重新繪制一遍,這樣會影響UI的性能,如果數據量很大的時候,只要改變其中的一項就要重新繪制所有的額item,顯然是不劃算的,這時我們自定義下面的方法
Android活動的生存期,Android活動生存期Activity 類中定義了七個回調方法,覆蓋了活動生命周期的每一個環節,下面我來一一介紹下這七個方法。1. onCr
小記:判斷設備是否聯網!,小記判斷設備聯網記住加權限: 1 package com.lixu.getInternet; 2 3 import android.a
selenium中webdriver的局部HTML提取別和我說selenium中的webdriver用driver.page_source,我就是不想把整篇HTML文檔每
Android 手機衛士14--Widget窗口小部件AppWidgetProvider,widget添加小部件 1.AndroidManifest.xml