**的乙個結構
1.右側自定義bar的部分**
首先重寫ondraw方法
/**
* 重寫
*@param canvas
*/@override
protected
void
ondraw(canvas canvas)
//x座標等於中間-字串寬度的一辦(????????)
float xpos=width/2-paint.measuretext(b[i])/2;
float ypos=singleheight*i+singleheight;
canvas.drawtext(b[i],xpos,ypos,paint);
paint.reset();//重置畫筆}}
重寫dispatchtouchevent方法
/**
* 重寫
*@param event
*@return
*/@targetapi(build.version_codes.jelly_bean)
@override
public
boolean
dispatchtouchevent(motionevent event)
break;
default:
setbackgroundresource(r.drawable.sidebar_background);
if(oldchoose!=c)
if(mtextdialog!=null)
choose=c;
invalidate();}}
break;
}return
true;
}
向外開發介面
/**
* 向外公開的方法
*@param ontouchingletterchangedlistener
*/public
void
setontouchingletterchangedlistener(ontouchingletterchangedlistener ontouchingletterchangedlistener)
2.adapter關鍵**,以province的adapter為例,繼承自sectionindexer
/**
* 根據listview的當前位置獲取匪類的首字母的char ascii值
*@param position
*@return
*/public
intgetsectionforposition(int position)
/*** 根據分類的首字母的char ascii值獲取其第一次出現該首字母的位置
*@param section
*@return
*/public
intgetpositionforsection(int section)
}return -1;
}
然後getview裡面判斷顯示效果,是否顯示字母,在**顯示字母
@override
public view getview(final int i, view view, viewgroup viewgroup)
else
//根據position獲取分類的首字母的char ascii值
int section=getsectionforposition(i);
//如果當前位置等於該分類首字母的char的位置,則認為是第一次出現
if(i==getpositionforsection(section))
else
holder.tvtitle
.settext(this.list
.get(i).getprovincename());
return view;
}
3.再貼乙個provinceactivity的類
public
class
provinceactivity
extends
activity
private
void
initview()
}});
sortlistview= (listview) findviewbyid(r.id.lv_pro);
sortlistview.setonitemclicklistener(new adapterview.onitemclicklistener()
});//獲取資料
volley_get();
}@override
protected
void
onactivityresult(int requestcode, int resultcode, intent data)
}super.onactivityresult(requestcode, resultcode, data);
}/**
* volley載入資料
*/private
void
volley_get().gettype();
try catch (jsonexception e)
}},new response.errorlistener()
});mqueue.add(jsonobjectrequest);
}/**
* 為listview填充資料
*@param
*@return
*/private listfilleddata(listlist)else
msortlist.add(province);
}return msortlist;}}
ok,貼上了部分**,而且很多關鍵地方我也在**中加了注釋。還是那句話,自己動手實現一把才能在今後用到的時候方便使用。
最後放上原始碼
有種戳死我!!!
Android 手機獲取Mac位址的幾種方法
最常用的方法,通過wifimanager獲取 通過wifimanager獲取mac位址 param context return private static string trygetwifimac context context if 02 00 00 00 00 00 equals wi.ge...
類似gitbook的wiki選擇
一直以來,都使用xwiki作為團隊內部的文件管理工具,但一直想換乙個比較輕量級的系統。團隊成員普遍對gitbook風格有好感,於是先後試用了mdwiki dokuwiki hexo mindoc wikitten。mdwiki 純粹用ajax寫的,部署最簡單,但是目錄只能兩級 dokuwiki ph...
關於android4 0 獲取手機IP位址的問題
public static string getlocalipaddress catch socketexception e return null 但是在4.0 下 會出現類似fe80 b607 f9ff fee5 487e的ip位址,這個是ipv6的位址,我們需要獲得是的ipv4的位址,所以要在...