ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> 移动开发 >> 手机联系人快速索引

手机联系人快速索引(1/2)

来源:网络整理     时间:2015-12-18     关键词:gravity,索引,RelativeLayou,Canvas,Activity

本篇文章主要介绍了"手机联系人快速索引",主要涉及到gravity,索引,RelativeLayou,Canvas,Activity方面的内容,对于移动开发感兴趣的同学可以参考一下: 这是一个手机联系人快速索引的效果,总体来说代码不算难,拼音转换的地方略有复杂。下面上源码:源码中有注释。MainActivity:import java.uti...

这是一个手机联系人快速索引的效果,总体来说代码不算难,拼音转换的地方略有复杂。下面上源码:源码中有注释。

MainActivity

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

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
/**
 * 这里是主布局
 * @author lxd
 *
 */
public class MainActivity extends Activity {

    private ListView lv_main;
    private FriendAdapter adapter;
    private List data = new ArrayList();
    private QuickIndexView qiv_main;
    private TextView tv_main_word;
    private Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
            //隐藏word
            tv_main_word.setVisibility(View.GONE);
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.Activity_main);

        lv_main = (ListView) findViewById(R.id.lv_main);
        qiv_main = (QuickIndexView) findViewById(R.id.qiv_main);
        tv_main_word = (TextView) findViewById(R.id.tv_main_word);

        //设置监听
        qiv_main.setOnIndexChangedListener(new QuickIndexView.OnIndexChangedListener() {

            @Override
            public void onIndexChanged(String word) {
                tv_main_word.setText(word);
                tv_main_word.setVisibility(View.VISIBLE);

                //handler.removeMessages(1);
                //移除未处理的消息
                handler.removeCallbacksAndMessages(null);
                //发延迟消息
                handler.sendEmptyMessageDelayed(1, 2000);

                //滑动listview
                //查找对应的item
                for(int i=0;iActivity.this, R.layout.item_main, null);
                holder.wordTV = (TextView) convertView.findViewById(R.id.tv_item_word);
                holder.nameTV = (TextView) convertView.findViewById(R.id.tv_item_name);
                convertView.setTag(holder);//***********?
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            Friend friend = data.get(position);
            String word = friend.getPinyin().substring(0, 1);
            holder.wordTV.setText(word);
            holder.nameTV.setText(friend.getName());

            //下标为0的显示
            if(position==0) {
                holder.wordTV.setVisibility(View.VISIBLE);
            } else {
                //取出上一个friend, 并得到的第一个word
                String preWord = data.get(position-1).getPinyin().substring(0, 1);
                //判断是否于当前行的word是否相同
                    //如果相同, 隐藏
                if(word.equals(preWord)) {
                    holder.wordTV.setVisibility(View.GONE);
                } else {
                    //如果不同, 显示
                    holder.wordTV.setVisibility(View.VISIBLE);
                }
            }

            return convertView;
        }

        class ViewHolder {
            public TextView wordTV;
            public TextView nameTV;
        }

    }
}

主布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:c
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    
    

    gravity="center"
        android:visibility="gone"/>

RelativeLayout>

Item:




    
    

自定义View:

相关图片

相关文章