转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155

前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了,过完国庆到新公司报道,感觉还不错,就是现在住的地方离新公司有点远,地铁20站,伤不起啊,我每天早上7点多就要起床,然后屁颠屁颠的去挤地铁上班,晚上下班还要挤地铁,先不说路程远,车费一天就要10几块,我的银子啊,有坐龙华线去上班的深圳程序员不?听说那条线上班高峰期很挤?我没在上班高峰期坐过那趟车,我在民治那边找了个房子,离华强北也不远,关键房租便宜,哈哈,乐开花了,下个礼拜就要搬过去啦

不扯了,回到主题,今天给大家带来ListView的A-Z字母排序和过滤搜索功能并且实现汉字转成拼音的功能,我们知道一般我们对联系人,城市列表等实现A-Z的排序,因为联系人和城市列表我们可以直接从数据库中获取他的汉字拼音,而对于一般的数据,我们怎么实现A-Z的排序,我们需要将汉字转换成拼音就行了,接下来就带大家实现一般数据的A-Z排序功能,首先先看下效果图

上面是一个带删除按钮的EditText,我们在输入框中输入可以自动过滤出我们想要的东西,当输入框中没有数据自动替换到原来的数据列表,然后下面一个ListView用来显示数据列表,右侧是一个字母索引表,当我们点击不同的字母,ListView会定位到该字母地方,了解了布局之后,我们先看下项目结构吧





![](http://img.blog.csdn.net/20131013204932718?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhYW5taW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)





我按照项目中类的顺序来一一介绍其功能





1.SortModel 一个实体类,里面一个是ListView的name,另一个就是显示的name拼音的首字母





<div class="dp-highlighter bg_java" style="color: #000000;">
  <div class="bar">
    <div class="tools" style="color: silver;">
      **[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

      
      <div>
      </div>
    </div>
  </div>
  
  
    - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
    
    - <span style="color: black;">  </span>
    
    - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> SortModel {  </span>
    
    - <span style="color: black;">  </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> String name;   <span class="comment" style="color: #008200;">//显示的数据</span>  </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> String sortLetters;  <span class="comment" style="color: #008200;">//显示数据拼音的首字母</span>  </span>
    
    - <span style="color: black;">      </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String getName() {  </span>
    
    - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> name;  </span>
    
    - <span style="color: black;">    }  </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> setName(String name) {  </span>
    
    - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.name = name;  </span>
    
    - <span style="color: black;">    }  </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String getSortLetters() {  </span>
    
    - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> sortLetters;  </span>
    
    - <span style="color: black;">    }  </span>
    
    - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> setSortLetters(String sortLetters) {  </span>
    
    - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.sortLetters = sortLetters;  </span>
    
    - <span style="color: black;">    }  </span>
    
    - <span style="color: black;">}  </span>
    
  
</div>



  <span style="color: #000000;">

2.SideBar类就是ListView右侧的字母索引View,我们需要使用setTextView(TextView mTextDialog)来设置用来显示当前按下的字母的TextView,以及使用setOnTouchingLetterChangedListener方法来设置回调接口,在回调方法onTouchingLetterChanged(String s)中来处理不同的操作

    <div class="dp-highlighter bg_java" style="color: #000000;">
      <div class="bar">
        <div class="tools" style="color: silver;">
          **[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

          
          <div>
          </div>
        </div>
      </div>
      
      
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.content.Context;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.graphics.Canvas;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.graphics.Color;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.graphics.Paint;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.graphics.Typeface;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.graphics.drawable.ColorDrawable;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.util.AttributeSet;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.MotionEvent;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.View;  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.TextView;  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> SideBar <span class="keyword" style="font-weight: bold; color: #006699;">extends</span> View {  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">// 触摸事件</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> OnTouchingLetterChangedListener onTouchingLetterChangedListener;  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">// 26个字母</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> String[] b = { <span class="string" style="color: blue;">&#8220;A&#8221;</span>, <span class="string" style="color: blue;">&#8220;B&#8221;</span>, <span class="string" style="color: blue;">&#8220;C&#8221;</span>, <span class="string" style="color: blue;">&#8220;D&#8221;</span>, <span class="string" style="color: blue;">&#8220;E&#8221;</span>, <span class="string" style="color: blue;">&#8220;F&#8221;</span>, <span class="string" style="color: blue;">&#8220;G&#8221;</span>, <span class="string" style="color: blue;">&#8220;H&#8221;</span>, <span class="string" style="color: blue;">&#8220;I&#8221;</span>,  </span>
        
        - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;J&#8221;</span>, <span class="string" style="color: blue;">&#8220;K&#8221;</span>, <span class="string" style="color: blue;">&#8220;L&#8221;</span>, <span class="string" style="color: blue;">&#8220;M&#8221;</span>, <span class="string" style="color: blue;">&#8220;N&#8221;</span>, <span class="string" style="color: blue;">&#8220;O&#8221;</span>, <span class="string" style="color: blue;">&#8220;P&#8221;</span>, <span class="string" style="color: blue;">&#8220;Q&#8221;</span>, <span class="string" style="color: blue;">&#8220;R&#8221;</span>, <span class="string" style="color: blue;">&#8220;S&#8221;</span>, <span class="string" style="color: blue;">&#8220;T&#8221;</span>, <span class="string" style="color: blue;">&#8220;U&#8221;</span>, <span class="string" style="color: blue;">&#8220;V&#8221;</span>,  </span>
        
        - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;W&#8221;</span>, <span class="string" style="color: blue;">&#8220;X&#8221;</span>, <span class="string" style="color: blue;">&#8220;Y&#8221;</span>, <span class="string" style="color: blue;">&#8220;Z&#8221;</span>, <span class="string" style="color: blue;">&#8220;#&#8221;</span> };  </span>
        
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> Paint paint = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> Paint();  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> TextView mTextDialog;  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 为SideBar设置显示字母的TextView</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * @param mTextDialog</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> setTextView(TextView mTextDialog) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.mTextDialog = mTextDialog;  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> SideBar(Context context, AttributeSet attrs, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> defStyle) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">super</span>(context, attrs, defStyle);  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> SideBar(Context context, AttributeSet attrs) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">super</span>(context, attrs);  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> SideBar(Context context) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">super</span>(context);  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 重写这个方法</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">protected</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onDraw(Canvas canvas) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">super</span>.onDraw(canvas);  </span>
        
        - <span style="color: black;">        <span class="comment" style="color: #008200;">// 获取焦点改变背景颜色.</span>  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> height = getHeight();<span class="comment" style="color: #008200;">// 获取对应高度</span>  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> width = getWidth(); <span class="comment" style="color: #008200;">// 获取对应宽度</span>  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> singleHeight = height / b.length;<span class="comment" style="color: #008200;">// 获取每一个字母的高度</span>  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">for</span> (<span class="keyword" style="font-weight: bold; color: #006699;">int</span> i = <span class="number" style="color: #c00000;"></span>; i < b.length; i++) {  </span>
        
        - <span style="color: black;">            paint.setColor(Color.rgb(<span class="number" style="color: #c00000;">33</span>, <span class="number" style="color: #c00000;">65</span>, <span class="number" style="color: #c00000;">98</span>));  </span>
        
        - <span style="color: black;">            <span class="comment" style="color: #008200;">// paint.setColor(Color.WHITE);</span>  </span>
        
        - <span style="color: black;">            paint.setTypeface(Typeface.DEFAULT_BOLD);  </span>
        
        - <span style="color: black;">            paint.setAntiAlias(<span class="keyword" style="font-weight: bold; color: #006699;">true</span>);  </span>
        
        - <span style="color: black;">            paint.setTextSize(<span class="number" style="color: #c00000;">20</span>);  </span>
        
        - <span style="color: black;">            <span class="comment" style="color: #008200;">// 选中的状态</span>  </span>
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (i == choose) {  </span>
        
        - <span style="color: black;">                paint.setColor(Color.parseColor(<span class="string" style="color: blue;">&#8220;#3399ff&#8221;</span>));  </span>
        
        - <span style="color: black;">                paint.setFakeBoldText(<span class="keyword" style="font-weight: bold; color: #006699;">true</span>);  </span>
        
        - <span style="color: black;">            }  </span>
        
        - <span style="color: black;">            <span class="comment" style="color: #008200;">// x坐标等于中间-字符串宽度的一半.</span>  </span>
        
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">float</span> yPos = singleHeight * i + singleHeight;  </span>
        
        - <span style="color: black;">            canvas.drawText(b[i], xPos, yPos, paint);  </span>
        
        - <span style="color: black;">            paint.reset();<span class="comment" style="color: #008200;">// 重置画笔</span>  </span>
        
        - <span style="color: black;">        }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="annotation" style="color: #646464;">@Override</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">boolean</span> dispatchTouchEvent(MotionEvent event) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> action = event.getAction();  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">float</span> y = event.getY();<span class="comment" style="color: #008200;">// 点击y坐标</span>  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> oldChoose = choose;  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> OnTouchingLetterChangedListener listener = onTouchingLetterChangedListener;  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> c = (<span class="keyword" style="font-weight: bold; color: #006699;">int</span>) (y / getHeight() * b.length);<span class="comment" style="color: #008200;">// 点击y坐标所占总高度的比例*b数组的长度就等于点击b中的个数.</span>  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">switch</span> (action) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">case</span> MotionEvent.ACTION_UP:  </span>
        
        - <span style="color: black;">            setBackgroundDrawable(<span class="keyword" style="font-weight: bold; color: #006699;">new</span> ColorDrawable(<span class="number" style="color: #c00000;">0x00000000</span>));  </span>
        
        
        - <span style="color: black;">            invalidate();  </span>
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (mTextDialog != <span class="keyword" style="font-weight: bold; color: #006699;">null</span>) {  </span>
        
        - <span style="color: black;">                mTextDialog.setVisibility(View.INVISIBLE);  </span>
        
        - <span style="color: black;">            }  </span>
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">break</span>;  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">default</span>:  </span>
        
        - <span style="color: black;">            setBackgroundResource(R.drawable.sidebar_background);  </span>
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (oldChoose != c) {  </span>
        
        - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (c >= <span class="number" style="color: #c00000;"></span> && c < b.length) {  </span>
        
        - <span style="color: black;">                    <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (listener != <span class="keyword" style="font-weight: bold; color: #006699;">null</span>) {  </span>
        
        - <span style="color: black;">                        listener.onTouchingLetterChanged(b[c]);  </span>
        
        - <span style="color: black;">                    }  </span>
        
        - <span style="color: black;">                    <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (mTextDialog != <span class="keyword" style="font-weight: bold; color: #006699;">null</span>) {  </span>
        
        - <span style="color: black;">                        mTextDialog.setText(b[c]);  </span>
        
        - <span style="color: black;">                        mTextDialog.setVisibility(View.VISIBLE);  </span>
        
        - <span style="color: black;">                    }  </span>
        
        - <span style="color: black;">                      </span>
        
        - <span style="color: black;">                    choose = c;  </span>
        
        - <span style="color: black;">                    invalidate();  </span>
        
        - <span style="color: black;">                }  </span>
        
        - <span style="color: black;">            }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">break</span>;  </span>
        
        - <span style="color: black;">        }  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> <span class="keyword" style="font-weight: bold; color: #006699;">true</span>;  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 向外公开的方法</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * </span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * @param onTouchingLetterChangedListener</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> setOnTouchingLetterChangedListener(  </span>
        
        - <span style="color: black;">            OnTouchingLetterChangedListener onTouchingLetterChangedListener) {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.onTouchingLetterChangedListener = onTouchingLetterChangedListener;  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 接口</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * </span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * @author coder</span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     * </span> </span>
        
        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
        
        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">interface</span> OnTouchingLetterChangedListener {  </span>
        
        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onTouchingLetterChanged(String s);  </span>
        
        - <span style="color: black;">    }  </span>
        
        - <span style="color: black;">  </span>
        
        - <span style="color: black;">}  </span>
        
      
    </div>
    
    

      

        3.CharacterParser 这个类是将汉字转换成拼音的类,该拼音没有声调的,该类是单例类,其中定义了三个方法,在这个demo中用到的是getSelling(String chs)方法,将词组转换成拼音
      

      
      

        <div class="dp-highlighter bg_java" style="color: #000000;">
          <div class="bar">
            <div class="tools" style="color: silver;">
              **[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

              
              <div>
              </div>
            </div>
          </div>
          
          
            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;"><span class="comment" style="color: #008200;">/**</span> </span>
            
            - <span style="color: black;"><span class="comment" style="color: #008200;"> * Java汉字转换为拼音</span> </span>
            
            - <span style="color: black;"><span class="comment" style="color: #008200;"> * </span> </span>
            
            - <span style="color: black;"><span class="comment" style="color: #008200;"> */</span>  </span>
            
            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> CharacterParser {  </span>
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> String[] pystr = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> String[] {<span class="string" style="color: blue;">&#8220;a&#8221;</span>, <span class="string" style="color: blue;">&#8220;ai&#8221;</span>, <span class="string" style="color: blue;">&#8220;an&#8221;</span>, <span class="string" style="color: blue;">&#8220;ang&#8221;</span>, <span class="string" style="color: blue;">&#8220;ao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ba&#8221;</span>, <span class="string" style="color: blue;">&#8220;bai&#8221;</span>, <span class="string" style="color: blue;">&#8220;ban&#8221;</span>, <span class="string" style="color: blue;">&#8220;bang&#8221;</span>, <span class="string" style="color: blue;">&#8220;bao&#8221;</span>, <span class="string" style="color: blue;">&#8220;bei&#8221;</span>, <span class="string" style="color: blue;">&#8220;ben&#8221;</span>, <span class="string" style="color: blue;">&#8220;beng&#8221;</span>, <span class="string" style="color: blue;">&#8220;bi&#8221;</span>, <span class="string" style="color: blue;">&#8220;bian&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;biao&#8221;</span>, <span class="string" style="color: blue;">&#8220;bie&#8221;</span>, <span class="string" style="color: blue;">&#8220;bin&#8221;</span>, <span class="string" style="color: blue;">&#8220;bing&#8221;</span>, <span class="string" style="color: blue;">&#8220;bo&#8221;</span>, <span class="string" style="color: blue;">&#8220;bu&#8221;</span>, <span class="string" style="color: blue;">&#8220;ca&#8221;</span>, <span class="string" style="color: blue;">&#8220;cai&#8221;</span>, <span class="string" style="color: blue;">&#8220;can&#8221;</span>, <span class="string" style="color: blue;">&#8220;cang&#8221;</span>, <span class="string" style="color: blue;">&#8220;cao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ce&#8221;</span>, <span class="string" style="color: blue;">&#8220;ceng&#8221;</span>, <span class="string" style="color: blue;">&#8220;cha&#8221;</span>, <span class="string" style="color: blue;">&#8220;chai&#8221;</span>, <span class="string" style="color: blue;">&#8220;chan&#8221;</span>, <span class="string" style="color: blue;">&#8220;chang&#8221;</span>, <span class="string" style="color: blue;">&#8220;chao&#8221;</span>, <span class="string" style="color: blue;">&#8220;che&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;chen&#8221;</span>, <span class="string" style="color: blue;">&#8220;cheng&#8221;</span>, <span class="string" style="color: blue;">&#8220;chi&#8221;</span>, <span class="string" style="color: blue;">&#8220;chong&#8221;</span>, <span class="string" style="color: blue;">&#8220;chou&#8221;</span>, <span class="string" style="color: blue;">&#8220;chu&#8221;</span>, <span class="string" style="color: blue;">&#8220;chuai&#8221;</span>, <span class="string" style="color: blue;">&#8220;chuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;chuang&#8221;</span>, <span class="string" style="color: blue;">&#8220;chui&#8221;</span>, <span class="string" style="color: blue;">&#8220;chun&#8221;</span>, <span class="string" style="color: blue;">&#8220;chuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;ci&#8221;</span>, <span class="string" style="color: blue;">&#8220;cong&#8221;</span>, <span class="string" style="color: blue;">&#8220;cou&#8221;</span>, <span class="string" style="color: blue;">&#8220;cu&#8221;</span>, <span class="string" style="color: blue;">&#8220;cuan&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;cui&#8221;</span>, <span class="string" style="color: blue;">&#8220;cun&#8221;</span>, <span class="string" style="color: blue;">&#8220;cuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;da&#8221;</span>, <span class="string" style="color: blue;">&#8220;dai&#8221;</span>, <span class="string" style="color: blue;">&#8220;dan&#8221;</span>, <span class="string" style="color: blue;">&#8220;dang&#8221;</span>, <span class="string" style="color: blue;">&#8220;dao&#8221;</span>, <span class="string" style="color: blue;">&#8220;de&#8221;</span>, <span class="string" style="color: blue;">&#8220;deng&#8221;</span>, <span class="string" style="color: blue;">&#8220;di&#8221;</span>, <span class="string" style="color: blue;">&#8220;dian&#8221;</span>, <span class="string" style="color: blue;">&#8220;diao&#8221;</span>, <span class="string" style="color: blue;">&#8220;die&#8221;</span>, <span class="string" style="color: blue;">&#8220;ding&#8221;</span>, <span class="string" style="color: blue;">&#8220;diu&#8221;</span>, <span class="string" style="color: blue;">&#8220;dong&#8221;</span>, <span class="string" style="color: blue;">&#8220;dou&#8221;</span>, <span class="string" style="color: blue;">&#8220;du&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;duan&#8221;</span>, <span class="string" style="color: blue;">&#8220;dui&#8221;</span>, <span class="string" style="color: blue;">&#8220;dun&#8221;</span>, <span class="string" style="color: blue;">&#8220;duo&#8221;</span>, <span class="string" style="color: blue;">&#8220;e&#8221;</span>, <span class="string" style="color: blue;">&#8220;en&#8221;</span>, <span class="string" style="color: blue;">&#8220;er&#8221;</span>, <span class="string" style="color: blue;">&#8220;fa&#8221;</span>, <span class="string" style="color: blue;">&#8220;fan&#8221;</span>, <span class="string" style="color: blue;">&#8220;fang&#8221;</span>, <span class="string" style="color: blue;">&#8220;fei&#8221;</span>, <span class="string" style="color: blue;">&#8220;fen&#8221;</span>, <span class="string" style="color: blue;">&#8220;feng&#8221;</span>, <span class="string" style="color: blue;">&#8220;fo&#8221;</span>, <span class="string" style="color: blue;">&#8220;fou&#8221;</span>, <span class="string" style="color: blue;">&#8220;fu&#8221;</span>, <span class="string" style="color: blue;">&#8220;ga&#8221;</span>, <span class="string" style="color: blue;">&#8220;gai&#8221;</span>, <span class="string" style="color: blue;">&#8220;gan&#8221;</span>, <span class="string" style="color: blue;">&#8220;gang&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;gao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ge&#8221;</span>, <span class="string" style="color: blue;">&#8220;gei&#8221;</span>, <span class="string" style="color: blue;">&#8220;gen&#8221;</span>, <span class="string" style="color: blue;">&#8220;geng&#8221;</span>, <span class="string" style="color: blue;">&#8220;gong&#8221;</span>, <span class="string" style="color: blue;">&#8220;gou&#8221;</span>, <span class="string" style="color: blue;">&#8220;gu&#8221;</span>, <span class="string" style="color: blue;">&#8220;gua&#8221;</span>, <span class="string" style="color: blue;">&#8220;guai&#8221;</span>, <span class="string" style="color: blue;">&#8220;guan&#8221;</span>, <span class="string" style="color: blue;">&#8220;guang&#8221;</span>, <span class="string" style="color: blue;">&#8220;gui&#8221;</span>, <span class="string" style="color: blue;">&#8220;gun&#8221;</span>, <span class="string" style="color: blue;">&#8220;guo&#8221;</span>, <span class="string" style="color: blue;">&#8220;ha&#8221;</span>, <span class="string" style="color: blue;">&#8220;hai&#8221;</span>, <span class="string" style="color: blue;">&#8220;han&#8221;</span>, <span class="string" style="color: blue;">&#8220;hang&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;hao&#8221;</span>, <span class="string" style="color: blue;">&#8220;he&#8221;</span>, <span class="string" style="color: blue;">&#8220;hei&#8221;</span>, <span class="string" style="color: blue;">&#8220;hen&#8221;</span>, <span class="string" style="color: blue;">&#8220;heng&#8221;</span>, <span class="string" style="color: blue;">&#8220;hong&#8221;</span>, <span class="string" style="color: blue;">&#8220;hou&#8221;</span>, <span class="string" style="color: blue;">&#8220;hu&#8221;</span>, <span class="string" style="color: blue;">&#8220;hua&#8221;</span>, <span class="string" style="color: blue;">&#8220;huai&#8221;</span>, <span class="string" style="color: blue;">&#8220;huan&#8221;</span>, <span class="string" style="color: blue;">&#8220;huang&#8221;</span>, <span class="string" style="color: blue;">&#8220;hui&#8221;</span>, <span class="string" style="color: blue;">&#8220;hun&#8221;</span>, <span class="string" style="color: blue;">&#8220;huo&#8221;</span>, <span class="string" style="color: blue;">&#8220;ji&#8221;</span>, <span class="string" style="color: blue;">&#8220;jia&#8221;</span>, <span class="string" style="color: blue;">&#8220;jian&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;jiang&#8221;</span>, <span class="string" style="color: blue;">&#8220;jiao&#8221;</span>, <span class="string" style="color: blue;">&#8220;jie&#8221;</span>, <span class="string" style="color: blue;">&#8220;jin&#8221;</span>, <span class="string" style="color: blue;">&#8220;jing&#8221;</span>, <span class="string" style="color: blue;">&#8220;jiong&#8221;</span>, <span class="string" style="color: blue;">&#8220;jiu&#8221;</span>, <span class="string" style="color: blue;">&#8220;ju&#8221;</span>, <span class="string" style="color: blue;">&#8220;juan&#8221;</span>, <span class="string" style="color: blue;">&#8220;jue&#8221;</span>, <span class="string" style="color: blue;">&#8220;jun&#8221;</span>, <span class="string" style="color: blue;">&#8220;ka&#8221;</span>, <span class="string" style="color: blue;">&#8220;kai&#8221;</span>, <span class="string" style="color: blue;">&#8220;kan&#8221;</span>, <span class="string" style="color: blue;">&#8220;kang&#8221;</span>, <span class="string" style="color: blue;">&#8220;kao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ke&#8221;</span>, <span class="string" style="color: blue;">&#8220;ken&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;keng&#8221;</span>, <span class="string" style="color: blue;">&#8220;kong&#8221;</span>, <span class="string" style="color: blue;">&#8220;kou&#8221;</span>, <span class="string" style="color: blue;">&#8220;ku&#8221;</span>, <span class="string" style="color: blue;">&#8220;kua&#8221;</span>, <span class="string" style="color: blue;">&#8220;kuai&#8221;</span>, <span class="string" style="color: blue;">&#8220;kuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;kuang&#8221;</span>, <span class="string" style="color: blue;">&#8220;kui&#8221;</span>, <span class="string" style="color: blue;">&#8220;kun&#8221;</span>, <span class="string" style="color: blue;">&#8220;kuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;la&#8221;</span>, <span class="string" style="color: blue;">&#8220;lai&#8221;</span>, <span class="string" style="color: blue;">&#8220;lan&#8221;</span>, <span class="string" style="color: blue;">&#8220;lang&#8221;</span>, <span class="string" style="color: blue;">&#8220;lao&#8221;</span>, <span class="string" style="color: blue;">&#8220;le&#8221;</span>, <span class="string" style="color: blue;">&#8220;lei&#8221;</span>, <span class="string" style="color: blue;">&#8220;leng&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;li&#8221;</span>, <span class="string" style="color: blue;">&#8220;lia&#8221;</span>, <span class="string" style="color: blue;">&#8220;lian&#8221;</span>, <span class="string" style="color: blue;">&#8220;liang&#8221;</span>, <span class="string" style="color: blue;">&#8220;liao&#8221;</span>, <span class="string" style="color: blue;">&#8220;lie&#8221;</span>, <span class="string" style="color: blue;">&#8220;lin&#8221;</span>, <span class="string" style="color: blue;">&#8220;ling&#8221;</span>, <span class="string" style="color: blue;">&#8220;liu&#8221;</span>, <span class="string" style="color: blue;">&#8220;long&#8221;</span>, <span class="string" style="color: blue;">&#8220;lou&#8221;</span>, <span class="string" style="color: blue;">&#8220;lu&#8221;</span>, <span class="string" style="color: blue;">&#8220;lv&#8221;</span>, <span class="string" style="color: blue;">&#8220;luan&#8221;</span>, <span class="string" style="color: blue;">&#8220;lue&#8221;</span>, <span class="string" style="color: blue;">&#8220;lun&#8221;</span>, <span class="string" style="color: blue;">&#8220;luo&#8221;</span>, <span class="string" style="color: blue;">&#8220;ma&#8221;</span>, <span class="string" style="color: blue;">&#8220;mai&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;man&#8221;</span>, <span class="string" style="color: blue;">&#8220;mang&#8221;</span>, <span class="string" style="color: blue;">&#8220;mao&#8221;</span>, <span class="string" style="color: blue;">&#8220;me&#8221;</span>, <span class="string" style="color: blue;">&#8220;mei&#8221;</span>, <span class="string" style="color: blue;">&#8220;men&#8221;</span>, <span class="string" style="color: blue;">&#8220;meng&#8221;</span>, <span class="string" style="color: blue;">&#8220;mi&#8221;</span>, <span class="string" style="color: blue;">&#8220;mian&#8221;</span>, <span class="string" style="color: blue;">&#8220;miao&#8221;</span>, <span class="string" style="color: blue;">&#8220;mie&#8221;</span>, <span class="string" style="color: blue;">&#8220;min&#8221;</span>, <span class="string" style="color: blue;">&#8220;ming&#8221;</span>, <span class="string" style="color: blue;">&#8220;miu&#8221;</span>, <span class="string" style="color: blue;">&#8220;mo&#8221;</span>, <span class="string" style="color: blue;">&#8220;mou&#8221;</span>, <span class="string" style="color: blue;">&#8220;mu&#8221;</span>, <span class="string" style="color: blue;">&#8220;na&#8221;</span>, <span class="string" style="color: blue;">&#8220;nai&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;nan&#8221;</span>, <span class="string" style="color: blue;">&#8220;nang&#8221;</span>, <span class="string" style="color: blue;">&#8220;nao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ne&#8221;</span>, <span class="string" style="color: blue;">&#8220;nei&#8221;</span>, <span class="string" style="color: blue;">&#8220;nen&#8221;</span>, <span class="string" style="color: blue;">&#8220;neng&#8221;</span>, <span class="string" style="color: blue;">&#8220;ni&#8221;</span>, <span class="string" style="color: blue;">&#8220;nian&#8221;</span>, <span class="string" style="color: blue;">&#8220;niang&#8221;</span>, <span class="string" style="color: blue;">&#8220;niao&#8221;</span>, <span class="string" style="color: blue;">&#8220;nie&#8221;</span>, <span class="string" style="color: blue;">&#8220;nin&#8221;</span>, <span class="string" style="color: blue;">&#8220;ning&#8221;</span>, <span class="string" style="color: blue;">&#8220;niu&#8221;</span>, <span class="string" style="color: blue;">&#8220;nong&#8221;</span>, <span class="string" style="color: blue;">&#8220;nu&#8221;</span>, <span class="string" style="color: blue;">&#8220;nv&#8221;</span>, <span class="string" style="color: blue;">&#8220;nuan&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;nue&#8221;</span>, <span class="string" style="color: blue;">&#8220;nuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;o&#8221;</span>, <span class="string" style="color: blue;">&#8220;ou&#8221;</span>, <span class="string" style="color: blue;">&#8220;pa&#8221;</span>, <span class="string" style="color: blue;">&#8220;pai&#8221;</span>, <span class="string" style="color: blue;">&#8220;pan&#8221;</span>, <span class="string" style="color: blue;">&#8220;pang&#8221;</span>, <span class="string" style="color: blue;">&#8220;pao&#8221;</span>, <span class="string" style="color: blue;">&#8220;pei&#8221;</span>, <span class="string" style="color: blue;">&#8220;pen&#8221;</span>, <span class="string" style="color: blue;">&#8220;peng&#8221;</span>, <span class="string" style="color: blue;">&#8220;pi&#8221;</span>, <span class="string" style="color: blue;">&#8220;pian&#8221;</span>, <span class="string" style="color: blue;">&#8220;piao&#8221;</span>, <span class="string" style="color: blue;">&#8220;pie&#8221;</span>, <span class="string" style="color: blue;">&#8220;pin&#8221;</span>, <span class="string" style="color: blue;">&#8220;ping&#8221;</span>, <span class="string" style="color: blue;">&#8220;po&#8221;</span>, <span class="string" style="color: blue;">&#8220;pu&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;qi&#8221;</span>, <span class="string" style="color: blue;">&#8220;qia&#8221;</span>, <span class="string" style="color: blue;">&#8220;qian&#8221;</span>, <span class="string" style="color: blue;">&#8220;qiang&#8221;</span>, <span class="string" style="color: blue;">&#8220;qiao&#8221;</span>, <span class="string" style="color: blue;">&#8220;qie&#8221;</span>, <span class="string" style="color: blue;">&#8220;qin&#8221;</span>, <span class="string" style="color: blue;">&#8220;qing&#8221;</span>, <span class="string" style="color: blue;">&#8220;qiong&#8221;</span>, <span class="string" style="color: blue;">&#8220;qiu&#8221;</span>, <span class="string" style="color: blue;">&#8220;qu&#8221;</span>, <span class="string" style="color: blue;">&#8220;quan&#8221;</span>, <span class="string" style="color: blue;">&#8220;que&#8221;</span>, <span class="string" style="color: blue;">&#8220;qun&#8221;</span>, <span class="string" style="color: blue;">&#8220;ran&#8221;</span>, <span class="string" style="color: blue;">&#8220;rang&#8221;</span>, <span class="string" style="color: blue;">&#8220;rao&#8221;</span>, <span class="string" style="color: blue;">&#8220;re&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;ren&#8221;</span>, <span class="string" style="color: blue;">&#8220;reng&#8221;</span>, <span class="string" style="color: blue;">&#8220;ri&#8221;</span>, <span class="string" style="color: blue;">&#8220;rong&#8221;</span>, <span class="string" style="color: blue;">&#8220;rou&#8221;</span>, <span class="string" style="color: blue;">&#8220;ru&#8221;</span>, <span class="string" style="color: blue;">&#8220;ruan&#8221;</span>, <span class="string" style="color: blue;">&#8220;rui&#8221;</span>, <span class="string" style="color: blue;">&#8220;run&#8221;</span>, <span class="string" style="color: blue;">&#8220;ruo&#8221;</span>, <span class="string" style="color: blue;">&#8220;sa&#8221;</span>, <span class="string" style="color: blue;">&#8220;sai&#8221;</span>, <span class="string" style="color: blue;">&#8220;san&#8221;</span>, <span class="string" style="color: blue;">&#8220;sang&#8221;</span>, <span class="string" style="color: blue;">&#8220;sao&#8221;</span>, <span class="string" style="color: blue;">&#8220;se&#8221;</span>, <span class="string" style="color: blue;">&#8220;sen&#8221;</span>, <span class="string" style="color: blue;">&#8220;seng&#8221;</span>, <span class="string" style="color: blue;">&#8220;sha&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;shai&#8221;</span>, <span class="string" style="color: blue;">&#8220;shan&#8221;</span>, <span class="string" style="color: blue;">&#8220;shang&#8221;</span>, <span class="string" style="color: blue;">&#8220;shao&#8221;</span>, <span class="string" style="color: blue;">&#8220;she&#8221;</span>, <span class="string" style="color: blue;">&#8220;shen&#8221;</span>, <span class="string" style="color: blue;">&#8220;sheng&#8221;</span>, <span class="string" style="color: blue;">&#8220;shi&#8221;</span>, <span class="string" style="color: blue;">&#8220;shou&#8221;</span>, <span class="string" style="color: blue;">&#8220;shu&#8221;</span>, <span class="string" style="color: blue;">&#8220;shua&#8221;</span>, <span class="string" style="color: blue;">&#8220;shuai&#8221;</span>, <span class="string" style="color: blue;">&#8220;shuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;shuang&#8221;</span>, <span class="string" style="color: blue;">&#8220;shui&#8221;</span>, <span class="string" style="color: blue;">&#8220;shun&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;shuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;si&#8221;</span>, <span class="string" style="color: blue;">&#8220;song&#8221;</span>, <span class="string" style="color: blue;">&#8220;sou&#8221;</span>, <span class="string" style="color: blue;">&#8220;su&#8221;</span>, <span class="string" style="color: blue;">&#8220;suan&#8221;</span>, <span class="string" style="color: blue;">&#8220;sui&#8221;</span>, <span class="string" style="color: blue;">&#8220;sun&#8221;</span>, <span class="string" style="color: blue;">&#8220;suo&#8221;</span>, <span class="string" style="color: blue;">&#8220;ta&#8221;</span>, <span class="string" style="color: blue;">&#8220;tai&#8221;</span>, <span class="string" style="color: blue;">&#8220;tan&#8221;</span>, <span class="string" style="color: blue;">&#8220;tang&#8221;</span>, <span class="string" style="color: blue;">&#8220;tao&#8221;</span>, <span class="string" style="color: blue;">&#8220;te&#8221;</span>, <span class="string" style="color: blue;">&#8220;teng&#8221;</span>, <span class="string" style="color: blue;">&#8220;ti&#8221;</span>, <span class="string" style="color: blue;">&#8220;tian&#8221;</span>, <span class="string" style="color: blue;">&#8220;tiao&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;tie&#8221;</span>, <span class="string" style="color: blue;">&#8220;ting&#8221;</span>, <span class="string" style="color: blue;">&#8220;tong&#8221;</span>, <span class="string" style="color: blue;">&#8220;tou&#8221;</span>, <span class="string" style="color: blue;">&#8220;tu&#8221;</span>, <span class="string" style="color: blue;">&#8220;tuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;tui&#8221;</span>, <span class="string" style="color: blue;">&#8220;tun&#8221;</span>, <span class="string" style="color: blue;">&#8220;tuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;wa&#8221;</span>, <span class="string" style="color: blue;">&#8220;wai&#8221;</span>, <span class="string" style="color: blue;">&#8220;wan&#8221;</span>, <span class="string" style="color: blue;">&#8220;wang&#8221;</span>, <span class="string" style="color: blue;">&#8220;wei&#8221;</span>, <span class="string" style="color: blue;">&#8220;wen&#8221;</span>, <span class="string" style="color: blue;">&#8220;weng&#8221;</span>, <span class="string" style="color: blue;">&#8220;wo&#8221;</span>, <span class="string" style="color: blue;">&#8220;wu&#8221;</span>, <span class="string" style="color: blue;">&#8220;xi&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;xia&#8221;</span>, <span class="string" style="color: blue;">&#8220;xian&#8221;</span>, <span class="string" style="color: blue;">&#8220;xiang&#8221;</span>, <span class="string" style="color: blue;">&#8220;xiao&#8221;</span>, <span class="string" style="color: blue;">&#8220;xie&#8221;</span>, <span class="string" style="color: blue;">&#8220;xin&#8221;</span>, <span class="string" style="color: blue;">&#8220;xing&#8221;</span>, <span class="string" style="color: blue;">&#8220;xiong&#8221;</span>, <span class="string" style="color: blue;">&#8220;xiu&#8221;</span>, <span class="string" style="color: blue;">&#8220;xu&#8221;</span>, <span class="string" style="color: blue;">&#8220;xuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;xue&#8221;</span>, <span class="string" style="color: blue;">&#8220;xun&#8221;</span>, <span class="string" style="color: blue;">&#8220;ya&#8221;</span>, <span class="string" style="color: blue;">&#8220;yan&#8221;</span>, <span class="string" style="color: blue;">&#8220;yang&#8221;</span>, <span class="string" style="color: blue;">&#8220;yao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ye&#8221;</span>, <span class="string" style="color: blue;">&#8220;yi&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;yin&#8221;</span>, <span class="string" style="color: blue;">&#8220;ying&#8221;</span>, <span class="string" style="color: blue;">&#8220;yo&#8221;</span>, <span class="string" style="color: blue;">&#8220;yong&#8221;</span>, <span class="string" style="color: blue;">&#8220;you&#8221;</span>, <span class="string" style="color: blue;">&#8220;yu&#8221;</span>, <span class="string" style="color: blue;">&#8220;yuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;yue&#8221;</span>, <span class="string" style="color: blue;">&#8220;yun&#8221;</span>, <span class="string" style="color: blue;">&#8220;za&#8221;</span>, <span class="string" style="color: blue;">&#8220;zai&#8221;</span>, <span class="string" style="color: blue;">&#8220;zan&#8221;</span>, <span class="string" style="color: blue;">&#8220;zang&#8221;</span>, <span class="string" style="color: blue;">&#8220;zao&#8221;</span>, <span class="string" style="color: blue;">&#8220;ze&#8221;</span>, <span class="string" style="color: blue;">&#8220;zei&#8221;</span>, <span class="string" style="color: blue;">&#8220;zen&#8221;</span>, <span class="string" style="color: blue;">&#8220;zeng&#8221;</span>, <span class="string" style="color: blue;">&#8220;zha&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;zhai&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhan&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhang&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhao&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhe&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhen&#8221;</span>, <span class="string" style="color: blue;">&#8220;zheng&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhi&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhong&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhou&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhu&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhua&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhuai&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhuang&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhui&#8221;</span>,  </span>
            
            - <span style="color: black;">            <span class="string" style="color: blue;">&#8220;zhun&#8221;</span>, <span class="string" style="color: blue;">&#8220;zhuo&#8221;</span>, <span class="string" style="color: blue;">&#8220;zi&#8221;</span>, <span class="string" style="color: blue;">&#8220;zong&#8221;</span>, <span class="string" style="color: blue;">&#8220;zou&#8221;</span>, <span class="string" style="color: blue;">&#8220;zu&#8221;</span>, <span class="string" style="color: blue;">&#8220;zuan&#8221;</span>, <span class="string" style="color: blue;">&#8220;zui&#8221;</span>, <span class="string" style="color: blue;">&#8220;zun&#8221;</span>, <span class="string" style="color: blue;">&#8220;zuo&#8221;</span>};  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> StringBuilder buffer;  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> String resource;  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> CharacterParser characterParser = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> CharacterParser();  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> CharacterParser getInstance() {  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> characterParser;  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String getResource() {  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> resource;  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> setResource(String resource) {  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.resource = resource;  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="comment" style="color: #008200;">/** * 汉字转成ASCII码 * * @param chs * @return */</span>  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> getChsAscii(String chs) {  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> asc = <span class="number" style="color: #c00000;"></span>;  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">try</span> {  </span>
            
            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">byte</span>[] bytes = chs.getBytes(<span class="string" style="color: blue;">&#8220;gb2312&#8221;</span>);  </span>
            
            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (bytes == <span class="keyword" style="font-weight: bold; color: #006699;">null</span> || bytes.length > <span class="number" style="color: #c00000;">2</span> || bytes.length <= <span class="number" style="color: #c00000;"></span>) {  </span>
            
            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">throw</span> <span class="keyword" style="font-weight: bold; color: #006699;">new</span> RuntimeException(<span class="string" style="color: blue;">&#8220;illegal resource string&#8221;</span>);  </span>
            
            - <span style="color: black;">            }  </span>
            
            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (bytes.length == <span class="number" style="color: #c00000;">1</span>) {  </span>
            
            - <span style="color: black;">                asc = bytes[<span class="number" style="color: #c00000;"></span>];  </span>
            
            - <span style="color: black;">            }  </span>
            
            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (bytes.length == <span class="number" style="color: #c00000;">2</span>) {  </span>
            
            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">int</span> hightByte = <span class="number" style="color: #c00000;">256</span> + bytes[<span class="number" style="color: #c00000;"></span>];  </span>
            
            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">int</span> lowByte = <span class="number" style="color: #c00000;">256</span> + bytes[<span class="number" style="color: #c00000;">1</span>];  </span>
            
            
            - <span style="color: black;">            }  </span>
            
            - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">catch</span> (Exception e) {  </span>
            
            - <span style="color: black;">            System.out.println(<span class="string" style="color: blue;">&#8220;ERROR:ChineseSpelling.class-getChsAscii(String chs)&#8221;</span> + e);  </span>
            
            - <span style="color: black;">        }  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> asc;  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="comment" style="color: #008200;">/** * 单字解析 * * @param str * @return */</span>  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String convert(String str) {  </span>
            
            - <span style="color: black;">        String result = <span class="keyword" style="font-weight: bold; color: #006699;">null</span>;  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> ascii = getChsAscii(str);  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (ascii > <span class="number" style="color: #c00000;"></span> && ascii < <span class="number" style="color: #c00000;">160</span>) {  </span>
            
            - <span style="color: black;">            result = String.valueOf((<span class="keyword" style="font-weight: bold; color: #006699;">char</span>) ascii);  </span>
            
            - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> {  </span>
            
            
            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (pyvalue[i] <= ascii) {  </span>
            
            - <span style="color: black;">                    result = pystr[i];  </span>
            
            - <span style="color: black;">                    <span class="keyword" style="font-weight: bold; color: #006699;">break</span>;  </span>
            
            - <span style="color: black;">                }  </span>
            
            - <span style="color: black;">            }  </span>
            
            - <span style="color: black;">        }  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> result;  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="comment" style="color: #008200;">/** * 词组解析 * * @param chs * @return */</span>  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String getSelling(String chs) {  </span>
            
            - <span style="color: black;">        String key, value;  </span>
            
            - <span style="color: black;">        buffer = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> StringBuilder();  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">for</span> (<span class="keyword" style="font-weight: bold; color: #006699;">int</span> i = <span class="number" style="color: #c00000;"></span>; i < chs.length(); i++) {  </span>
            
            - <span style="color: black;">            key = chs.substring(i, i + <span class="number" style="color: #c00000;">1</span>);  </span>
            
            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (key.getBytes().length >= <span class="number" style="color: #c00000;">2</span>) {  </span>
            
            - <span style="color: black;">                value = (String) convert(key);  </span>
            
            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (value == <span class="keyword" style="font-weight: bold; color: #006699;">null</span>) {  </span>
            
            - <span style="color: black;">                    value = <span class="string" style="color: blue;">&#8220;unknown&#8221;</span>;  </span>
            
            - <span style="color: black;">                }  </span>
            
            - <span style="color: black;">            } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> {  </span>
            
            - <span style="color: black;">                value = key;  </span>
            
            - <span style="color: black;">            }  </span>
            
            - <span style="color: black;">            buffer.append(value);  </span>
            
            - <span style="color: black;">        }  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> buffer.toString();  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> String getSpelling() {  </span>
            
            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.getSelling(<span class="keyword" style="font-weight: bold; color: #006699;">this</span>.getResource());  </span>
            
            - <span style="color: black;">    }  </span>
            
            - <span style="color: black;">  </span>
            
            - <span style="color: black;">}  </span>
            
          
        </div>
        
        

          

            

              4.ClearEditText类是自定义的一个在右侧有删除图片的EditText,当然你也可以用Android原生的EditText,该类我之前有介绍,我这里就不贴上代码了[Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框](http://blog.csdn.net/xiaanming/article/details/11066685)
            

            
            

              

                5.SortAdapter 数据的适配器类,该类需要实现SectionIndexer接口,该接口是用来控制ListView分组的,该接口有三个方法getSectionForPosition(int position),getPositionForSection(int section),getSections(),我们只需要自行实现前面两个方法
              

              
              

                
                  - getSectionForPosition(int position)是根据ListView的position来获取该位置上面的name的首字母char的ascii值,例如: 如果该position上面的name是阿妹,首字母就是A,那么此方法返回的就是&#8217;A&#8217;字母的ascii值,也就是65, &#8216;B&#8217;是66,依次类推
                  
                  - getPositionForSection(int section)就是根据首字母的ascii值来获取在该ListView中第一次出现该首字母的位置,例如:从上面的效果图1中,如果section是66 ,也就是‘B’的ascii值,那么该方法返回的position就是2
                  
                
                
                

                  

                    然后就是getView()方法,首先我们根据ListView的position调用getSectionForPosition(int position)来获取该位置上面name的首字母的ascii值,然后根据这个ascii值调用getPositionForSection(int section)来获取第一次出现该首字母的position,如果ListView的position 等于 根据这个ascii值调用getPositionForSection(int section)来获取第一次出现该首字母的position,则显示分类字母 否则隐藏
                  

                  
                  

                    <div class="dp-highlighter bg_java" style="color: #000000;">
                      <div class="bar">
                        <div class="tools" style="color: silver;">
                          **[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

                          
                          <div>
                          </div>
                        </div>
                      </div>
                      
                      
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.List;  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.content.Context;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.LayoutInflater;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.View;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.ViewGroup;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.BaseAdapter;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.SectionIndexer;  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.TextView;  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> SortAdapter <span class="keyword" style="font-weight: bold; color: #006699;">extends</span> BaseAdapter <span class="keyword" style="font-weight: bold; color: #006699;">implements</span> SectionIndexer{  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> List<SortModel> list = <span class="keyword" style="font-weight: bold; color: #006699;">null</span>;  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> Context mContext;  </span>
                        
                        - <span style="color: black;">      </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> SortAdapter(Context mContext, List<SortModel> list) {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.mContext = mContext;  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.list = list;  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">      </span>
                        
                        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 当ListView数据发生变化时,调用此方法来更新ListView</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     * @param list</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> updateListView(List<SortModel> list){  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.list = list;  </span>
                        
                        - <span style="color: black;">        notifyDataSetChanged();  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> getCount() {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> <span class="keyword" style="font-weight: bold; color: #006699;">this</span>.list.size();  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> Object getItem(<span class="keyword" style="font-weight: bold; color: #006699;">int</span> position) {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> list.get(position);  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">long</span> getItemId(<span class="keyword" style="font-weight: bold; color: #006699;">int</span> position) {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> position;  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> View getView(<span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> position, View view, ViewGroup arg2) {  </span>
                        
                        - <span style="color: black;">        ViewHolder viewHolder = <span class="keyword" style="font-weight: bold; color: #006699;">null</span>;  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">final</span> SortModel mContent = list.get(position);  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (view == <span class="keyword" style="font-weight: bold; color: #006699;">null</span>) {  </span>
                        
                        - <span style="color: black;">            viewHolder = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ViewHolder();  </span>
                        
                        - <span style="color: black;">            view = LayoutInflater.from(mContext).inflate(R.layout.item, <span class="keyword" style="font-weight: bold; color: #006699;">null</span>);  </span>
                        
                        - <span style="color: black;">            viewHolder.tvTitle = (TextView) view.findViewById(R.id.title);  </span>
                        
                        - <span style="color: black;">            viewHolder.tvLetter = (TextView) view.findViewById(R.id.catalog);  </span>
                        
                        - <span style="color: black;">            view.setTag(viewHolder);  </span>
                        
                        - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> {  </span>
                        
                        - <span style="color: black;">            viewHolder = (ViewHolder) view.getTag();  </span>
                        
                        - <span style="color: black;">        }  </span>
                        
                        - <span style="color: black;">          </span>
                        
                        - <span style="color: black;">        <span class="comment" style="color: #008200;">//根据position获取分类的首字母的char ascii值</span>  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">int</span> section = getSectionForPosition(position);  </span>
                        
                        - <span style="color: black;">          </span>
                        
                        - <span style="color: black;">        <span class="comment" style="color: #008200;">//如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现</span>  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">if</span>(position == getPositionForSection(section)){  </span>
                        
                        - <span style="color: black;">            viewHolder.tvLetter.setVisibility(View.VISIBLE);  </span>
                        
                        - <span style="color: black;">            viewHolder.tvLetter.setText(mContent.getSortLetters());  </span>
                        
                        - <span style="color: black;">        }<span class="keyword" style="font-weight: bold; color: #006699;">else</span>{  </span>
                        
                        - <span style="color: black;">            viewHolder.tvLetter.setVisibility(View.GONE);  </span>
                        
                        - <span style="color: black;">        }  </span>
                        
                        - <span style="color: black;">      </span>
                        
                        - <span style="color: black;">        viewHolder.tvTitle.setText(<span class="keyword" style="font-weight: bold; color: #006699;">this</span>.list.get(position).getName());  </span>
                        
                        - <span style="color: black;">          </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> view;  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">      </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">final</span> <span class="keyword" style="font-weight: bold; color: #006699;">static</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> ViewHolder {  </span>
                        
                        - <span style="color: black;">        TextView tvLetter;  </span>
                        
                        - <span style="color: black;">        TextView tvTitle;  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 根据ListView的当前位置获取分类的首字母的char ascii值</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> getSectionForPosition(<span class="keyword" style="font-weight: bold; color: #006699;">int</span> position) {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> list.get(position).getSortLetters().charAt(<span class="number" style="color: #c00000;"></span>);  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     * 根据分类的首字母的Char ascii值获取其第一次出现该首字母的位置</span> </span>
                        
                        - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> getPositionForSection(<span class="keyword" style="font-weight: bold; color: #006699;">int</span> section) {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">for</span> (<span class="keyword" style="font-weight: bold; color: #006699;">int</span> i = <span class="number" style="color: #c00000;"></span>; i < getCount(); i++) {  </span>
                        
                        - <span style="color: black;">            String sortStr = list.get(i).getSortLetters();  </span>
                        
                        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">char</span> firstChar = sortStr.toUpperCase().charAt(<span class="number" style="color: #c00000;"></span>);  </span>
                        
                        - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (firstChar == section) {  </span>
                        
                        - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">return</span> i;  </span>
                        
                        - <span style="color: black;">            }  </span>
                        
                        - <span style="color: black;">        }  </span>
                        
                        - <span style="color: black;">          </span>
                        
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">      </span>
                        
                        - <span style="color: black;">  </span>
                        
                        - <span style="color: black;">    <span class="annotation" style="color: #646464;">@Override</span>  </span>
                        
                        - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> Object[] getSections() {  </span>
                        
                        - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> <span class="keyword" style="font-weight: bold; color: #006699;">null</span>;  </span>
                        
                        - <span style="color: black;">    }  </span>
                        
                        - <span style="color: black;">}  </span>
                        
                      
                    </div>
                    
                    

                      **<span style="color: #000000;">6.MainActivity 这里面的代码比较简单,我们对ClearEditText设置addTextChangedListener监听,当输入框内容发生变化根据里面的值过滤ListView,里面的值为空显示原来的列表,里面对列表数据进行排序用到PinyinComparator接口,该接口主要是用来比较对象的</span>
                    

                    
                    

                      

                        <div class="dp-highlighter bg_java" style="color: #000000;">
                          <div class="bar">
                            <div class="tools" style="color: silver;">
                              <b>[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

                              
                              <div>
                              </div>
                            </div>
                          </div>
                          
                          
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.ArrayList;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.Collections;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.List;  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.app.Activity;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.os.Bundle;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.text.Editable;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.text.TextUtils;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.text.TextWatcher;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.view.View;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.AdapterView;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.AdapterView.OnItemClickListener;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.ListView;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.TextView;  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> android.widget.Toast;  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> com.example.sortlistview.SideBar.OnTouchingLetterChangedListener;  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> MainActivity <span class="keyword" style="font-weight: bold; color: #006699;">extends</span> Activity {  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> ListView sortListView;  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> SideBar sideBar;  </span>
                            
                            - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * 显示字母的TextView</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> TextView dialog;  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> SortAdapter adapter;  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> ClearEditText mClearEditText;  </span>
                            
                            - <span style="color: black;">      </span>
                            
                            - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * 汉字转换成拼音的类</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> CharacterParser characterParser;  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> List<SortModel> SourceDateList;  </span>
                            
                            - <span style="color: black;">      </span>
                            
                            - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * 根据拼音来排列ListView里面的数据类</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> PinyinComparator pinyinComparator;  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">    <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">protected</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onCreate(Bundle savedInstanceState) {  </span>
                            
                            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">super</span>.onCreate(savedInstanceState);  </span>
                            
                            - <span style="color: black;">        setContentView(R.layout.activity_main);  </span>
                            
                            - <span style="color: black;">        initViews();  </span>
                            
                            - <span style="color: black;">    }  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> initViews() {  </span>
                            
                            - <span style="color: black;">        <span class="comment" style="color: #008200;">//实例化汉字转拼音类</span>  </span>
                            
                            - <span style="color: black;">        characterParser = CharacterParser.getInstance();  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        pinyinComparator = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> PinyinComparator();  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        sideBar = (SideBar) findViewById(R.id.sidrbar);  </span>
                            
                            - <span style="color: black;">        dialog = (TextView) findViewById(R.id.dialog);  </span>
                            
                            - <span style="color: black;">        sideBar.setTextView(dialog);  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        <span class="comment" style="color: #008200;">//设置右侧触摸监听</span>  </span>
                            
                            - <span style="color: black;">        sideBar.setOnTouchingLetterChangedListener(<span class="keyword" style="font-weight: bold; color: #006699;">new</span> OnTouchingLetterChangedListener() {  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onTouchingLetterChanged(String s) {  </span>
                            
                            - <span style="color: black;">                <span class="comment" style="color: #008200;">//该字母首次出现的位置</span>  </span>
                            
                            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">int</span> position = adapter.getPositionForSection(s.charAt(<span class="number" style="color: #c00000;"></span>));  </span>
                            
                            
                            - <span style="color: black;">                    sortListView.setSelection(position);  </span>
                            
                            - <span style="color: black;">                }  </span>
                            
                            - <span style="color: black;">                  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">        });  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        sortListView = (ListView) findViewById(R.id.country_lvcountry);  </span>
                            
                            - <span style="color: black;">        sortListView.setOnItemClickListener(<span class="keyword" style="font-weight: bold; color: #006699;">new</span> OnItemClickListener() {  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">            <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onItemClick(AdapterView<?> parent, View view,  </span>
                            
                            - <span style="color: black;">                    <span class="keyword" style="font-weight: bold; color: #006699;">int</span> position, <span class="keyword" style="font-weight: bold; color: #006699;">long</span> id) {  </span>
                            
                            - <span style="color: black;">                <span class="comment" style="color: #008200;">//这里要利用adapter.getItem(position)来获取当前position所对应的对象</span>  </span>
                            
                            - <span style="color: black;">                Toast.makeText(getApplication(), ((SortModel)adapter.getItem(position)).getName(), Toast.LENGTH_SHORT).show();  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">        });  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        SourceDateList = filledData(getResources().getStringArray(R.array.date));  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        <span class="comment" style="color: #008200;">// 根据a-z进行排序源数据</span>  </span>
                            
                            - <span style="color: black;">        Collections.sort(SourceDateList, pinyinComparator);  </span>
                            
                            - <span style="color: black;">        adapter = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> SortAdapter(<span class="keyword" style="font-weight: bold; color: #006699;">this</span>, SourceDateList);  </span>
                            
                            - <span style="color: black;">        sortListView.setAdapter(adapter);  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        mClearEditText = (ClearEditText) findViewById(R.id.filter_edit);  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        <span class="comment" style="color: #008200;">//根据输入框输入值的改变来过滤搜索</span>  </span>
                            
                            - <span style="color: black;">        mClearEditText.addTextChangedListener(<span class="keyword" style="font-weight: bold; color: #006699;">new</span> TextWatcher() {  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> onTextChanged(CharSequence s, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> start, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> before, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> count) {  </span>
                            
                            - <span style="color: black;">                <span class="comment" style="color: #008200;">//当输入框里面的值为空,更新为原来的列表,否则为过滤数据列表</span>  </span>
                            
                            - <span style="color: black;">                filterData(s.toString());  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> beforeTextChanged(CharSequence s, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> start, <span class="keyword" style="font-weight: bold; color: #006699;">int</span> count,  </span>
                            
                            - <span style="color: black;">                    <span class="keyword" style="font-weight: bold; color: #006699;">int</span> after) {  </span>
                            
                            - <span style="color: black;">                  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            <span class="annotation" style="color: #646464;">@Override</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> afterTextChanged(Editable s) {  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">        });  </span>
                            
                            - <span style="color: black;">    }  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * 为ListView填充数据</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * @param date</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * @return</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> List<SortModel> filledData(String [] date){  </span>
                            
                            - <span style="color: black;">        List<SortModel> mSortList = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ArrayList<SortModel>();  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">for</span>(<span class="keyword" style="font-weight: bold; color: #006699;">int</span> i=<span class="number" style="color: #c00000;"></span>; i<date.length; i++){  </span>
                            
                            - <span style="color: black;">            SortModel sortModel = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> SortModel();  </span>
                            
                            - <span style="color: black;">            sortModel.setName(date[i]);  </span>
                            
                            - <span style="color: black;">            <span class="comment" style="color: #008200;">//汉字转换成拼音</span>  </span>
                            
                            - <span style="color: black;">            String pinyin = characterParser.getSelling(date[i]);  </span>
                            
                            - <span style="color: black;">            String sortString = pinyin.substring(<span class="number" style="color: #c00000;"></span>, <span class="number" style="color: #c00000;">1</span>).toUpperCase();  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            <span class="comment" style="color: #008200;">// 正则表达式,判断首字母是否是英文字母</span>  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">if</span>(sortString.matches(<span class="string" style="color: blue;">&#8220;[A-Z]&#8221;</span>)){  </span>
                            
                            - <span style="color: black;">                sortModel.setSortLetters(sortString.toUpperCase());  </span>
                            
                            - <span style="color: black;">            }<span class="keyword" style="font-weight: bold; color: #006699;">else</span>{  </span>
                            
                            - <span style="color: black;">                sortModel.setSortLetters(<span class="string" style="color: blue;">&#8220;#&#8221;</span>);  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">              </span>
                            
                            - <span style="color: black;">            mSortList.add(sortModel);  </span>
                            
                            - <span style="color: black;">        }  </span>
                            
                            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">return</span> mSortList;  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">    }  </span>
                            
                            - <span style="color: black;">      </span>
                            
                            - <span style="color: black;">    <span class="comment" style="color: #008200;">/**</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * 根据输入框中的值来过滤数据并更新ListView</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     * @param filterStr</span> </span>
                            
                            - <span style="color: black;"><span class="comment" style="color: #008200;">     */</span>  </span>
                            
                            - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">private</span> <span class="keyword" style="font-weight: bold; color: #006699;">void</span> filterData(String filterStr) {  </span>
                            
                            - <span style="color: black;">        List<SortModel> filterDateList = <span class="keyword" style="font-weight: bold; color: #006699;">new</span> ArrayList<SortModel>();  </span>
                            
                            - <span style="color: black;">  </span>
                            
                            - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (TextUtils.isEmpty(filterStr)) {  </span>
                            
                            - <span style="color: black;">            filterDateList = SourceDateList;  </span>
                            
                            - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> {  </span>
                            
                            - <span style="color: black;">            filterDateList.clear();  </span>
                            
                            - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">for</span> (SortModel sortModel : SourceDateList) {  </span>
                            
                            - <span style="color: black;">                String name = sortModel.getName();  </span>
                            
                            - <span style="color: black;">                <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (name.toUpperCase().indexOf(  </span>
                            
                            
                            - <span style="color: black;">                        || characterParser.getSelling(name).toUpperCase()  </span>
                            
                            - <span style="color: black;">                                .startsWith(filterStr.toString().toUpperCase())) {  </span>
                            
                            - <span style="color: black;">                    filterDateList.add(sortModel);  </span>
                            
                            - <span style="color: black;">                }  </span>
                            
                            - <span style="color: black;">            }  </span>
                            
                            - <span style="color: black;">        }  </span>
                            
                            - <span style="color: black;">          </span>
                            
                            - <span style="color: black;">        <span class="comment" style="color: #008200;">// 根据a-z进行排序</span>  </span>
                            
                            - <span style="color: black;">        Collections.sort(filterDateList, pinyinComparator);  </span>
                            
                            - <span style="color: black;">        adapter.updateListView(filterDateList);  </span>
                            
                            - <span style="color: black;">    }  </span>
                            
                            - <span style="color: black;">      </span>
                            
                            - <span style="color: black;">}  </span>
                            
                          
                        </div>
                        
                        

                          

                            7.PinyinComparator接口用来对ListView中的数据根据A-Z进行排序,前面两个if判断主要是将不是以汉字开头的数据放在后面
                          

                          
                          

                            <div class="dp-highlighter bg_java" style="color: #000000;">
                              <div class="bar">
                                <div class="tools" style="color: silver;">
                                  **[java]** [view plain](http://blog.csdn.net/xiaanming/article/details/12684155#)[copy](http://blog.csdn.net/xiaanming/article/details/12684155#)[![在CODE上查看代码片](https://code.csdn.net/assets/CODE_ico.png)](https://code.csdn.net/snippets/111689)[![派生到我的代码片](https://code.csdn.net/assets/ico_fork.svg)](https://code.csdn.net/snippets/111689/fork)

                                  
                                  <div>
                                  </div>
                                </div>
                              </div>
                              
                              
                                - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">package</span> com.example.sortlistview;  </span>
                                
                                - <span style="color: black;">  </span>
                                
                                - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">import</span> java.util.Comparator;  </span>
                                
                                - <span style="color: black;">  </span>
                                
                                - <span style="color: black;"><span class="comment" style="color: #008200;">/**</span> </span>
                                
                                - <span style="color: black;"><span class="comment" style="color: #008200;"> * </span> </span>
                                
                                - <span style="color: black;"><span class="comment" style="color: #008200;"> * @author xiaanming</span> </span>
                                
                                - <span style="color: black;"><span class="comment" style="color: #008200;"> *</span> </span>
                                
                                - <span style="color: black;"><span class="comment" style="color: #008200;"> */</span>  </span>
                                
                                - <span style="color: black;"><span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">class</span> PinyinComparator <span class="keyword" style="font-weight: bold; color: #006699;">implements</span> Comparator<SortModel> {  </span>
                                
                                - <span style="color: black;">  </span>
                                
                                - <span style="color: black;">    <span class="keyword" style="font-weight: bold; color: #006699;">public</span> <span class="keyword" style="font-weight: bold; color: #006699;">int</span> compare(SortModel o1, SortModel o2) {  </span>
                                
                                - <span style="color: black;">        <span class="comment" style="color: #008200;">//这里主要是用来对ListView里面的数据根据ABCDEFG&#8230;来排序</span>  </span>
                                
                                - <span style="color: black;">        <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (o2.getSortLetters().equals(<span class="string" style="color: blue;">&#8220;#&#8221;</span>)) {  </span>
                                
                                
                                - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> <span class="keyword" style="font-weight: bold; color: #006699;">if</span> (o1.getSortLetters().equals(<span class="string" style="color: blue;">&#8220;#&#8221;</span>)) {  </span>
                                
                                - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">return</span> <span class="number" style="color: #c00000;">1</span>;  </span>
                                
                                - <span style="color: black;">        } <span class="keyword" style="font-weight: bold; color: #006699;">else</span> {  </span>
                                
                                - <span style="color: black;">            <span class="keyword" style="font-weight: bold; color: #006699;">return</span> o1.getSortLetters().compareTo(o2.getSortLetters());  </span>
                                
                                - <span style="color: black;">        }  </span>
                                
                                - <span style="color: black;">    }  </span>
                                
                                - <span style="color: black;">}  </span>
                                
                              
                            </div>
                            
                            

                              

                                这样我们以后使用A-Z排序就没要局限性了,想加这个效果随时都行,其他的布局和图片之类的文件就不贴出来了,如果大家有兴趣的自行去下载代码吧,如果大家有什么疑问,请在下面留言,我会为大家解答的!
                              

                              
                              

                                [项目源码,点击下载](http://download.csdn.net/detail/xiaanming/6394377)
                              

                              
                              

                                github地址:https://github.com/xiaanming/A-Z-SortListView