sticklistview

来源:互联网 发布:北京哪有淘宝拍摄基地 编辑:程序博客网 时间:2024/05/22 00:38
package com.example.stick;


import java.util.ArrayList;
import java.util.List;


import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter;
import se.emilsjolander.stickylistheaders.StickyListHeadersListView;
import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;


public class MainActivity extends Activity {


List<String> list;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        StickyListHeadersListView stick = (StickyListHeadersListView) findViewById(R.id.list);
        
        list = new ArrayList<String>();
        
        for (int i = 0 ; i < 100 ; i ++) {
       
        list.add(i + "");
        }


        stick.setAdapter(new MAdapter());
        
    }
    
    public class MAdapter extends BaseAdapter implements StickyListHeadersAdapter {
 
       private LayoutInflater inflater;


       public MAdapter() {
           inflater = LayoutInflater.from(MainActivity.this);
            
       }


       @Override
       public int getCount() {
           return list.size();
       }


       @Override
       public Object getItem(int position) {
           return list.get(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(list.get(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 = "" + list.get(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 list.get(position).subSequence(0, 1).charAt(0);
       }


       class HeaderViewHolder {
           TextView text;
       }


       class ViewHolder {
           TextView text;
       }
   
    }




    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}
0 0
原创粉丝点击