Android StickyListHeaders實現(xiàn)電話本列表效果
本文實例為大家分享了StickyListHeaders電話本列表效果的具體代碼,供大家參考,具體內容如下
效果展示
布局文件
與listview使用方式一樣,可以在布局文件中直接進行使用
核心代碼
oncreat方法
在oncreat方法中初始化控件,并為控件設置數(shù)據(jù)適配器
StickyListHeadersListView stickyList = (StickyListHeadersListView) findViewById(R.id.list); MyAdapter adapter = new MyAdapter(this); stickyList.setAdapter(adapter);
設置數(shù)據(jù)適配器
在設置數(shù)據(jù)適配器的時候,需要先繼承BaseAdapter,然后實現(xiàn)StickyListHeadersAdapter接口,最后實現(xiàn)里面為實現(xiàn)的方法
public class MyAdapter extends BaseAdapter implements StickyListHeadersAdapter { private String[] countries; private LayoutInflater inflater; public MyAdapter(Context context) { inflater = LayoutInflater.from(context); countries = context.getResources().getStringArray(R.array.countries); } @Override public int getCount() { return countries.length; } @Override public Object getItem(int position) { return countries[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.test_list_item_layout, parent, false); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(countries[position]); return convertView; } @Override public View getHeaderView(int position, View convertView, ViewGroup parent) { HeaderViewHolder holder; if (convertView == null) { holder = new HeaderViewHolder(); convertView = inflater.inflate(R.layout.header, parent, false); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (HeaderViewHolder) convertView.getTag(); } //set header text as first char in name String headerText = + countries[position].subSequence(0, 1).charAt(0); holder.text.setText(headerText); return convertView; } @Override public long getHeaderId(int position) { //return the first character of the country as ID because this is what headers are based upon return countries[position].subSequence(0, 1).charAt(0); } class HeaderViewHolder { TextView text; } class ViewHolder { TextView text; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android實現(xiàn)聯(lián)動下拉框 下拉列表spinner的實例代碼
- android二級listview列表實現(xiàn)代碼
- android 支持的語言列表(匯總)
- Android uses-permission權限列表中文注釋版
- Android通過LIstView顯示文件列表的兩種方法介紹
- Android ExpandableListView展開列表控件使用實例
- Android實現(xiàn)獲取應用程序相關信息列表的方法
- android開發(fā)教程之使用listview顯示qq聯(lián)系人列表
- Android用ListView顯示SDCard文件列表的小例子
- Android列表實現(xiàn)(3)_自定義列表適配器思路及實現(xiàn)代碼
相關文章
Android?PickerScrollView滑動選擇控件使用方法詳解
這篇文章主要為大家詳細介紹了Android?PickerScrollView滑動選擇控件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Android使用MediaRecorder實現(xiàn)錄音及播放
這篇文章主要為大家詳細介紹了Android使用MediaRecorder實現(xiàn)錄音及播放,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02Android 藍牙連接 ESC/POS 熱敏打印機打印實例(ESC/POS指令篇)
這篇文章主要介紹了Android 藍牙連接 ESC/POS 熱敏打印機打印實例(ESC/POS指令篇),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04