package com.example.ipcplayer.activity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.example.ipcplayer.R;
import com.example.ipcplayer.caseindex.Content;
import com.example.ipcplayer.caseindex.MyAdapter;
import com.example.ipcplayer.caseindex.SideBar;
import com.example.ipcplayer.utils.LogUtil;
import com.example.ipcplayer.utils.StringUtil;
import android.app.Activity;
import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import android.widget.TextView;
public class CaseIndexActivity extends Activity {
private static boolean DEBUG = true;
private ListView mListView;
private SideBar indexBar;
private WindowManager mWindowManager;
private TextView mDialogText;
private View head;
@SuppressWarnings("unchecked")
@Override
public void onCreate(Bundle savedInstanceState) {
//启动activity时不自动弹出软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.list_example);
mListView = (ListView) this.findViewById(R.id.list);
indexBar = (SideBar) findViewById(R.id.sideBar);
mDialogText = (TextView) LayoutInflater.from(this).inflate(R.layout.list_position, null);
head = LayoutInflater.from(this).inflate(R.layout.head, null);
mListView.addHeaderView(head);
mDialogText.setVisibility(View.INVISIBLE);
mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
mWindowManager.addView(mDialogText, lp);
indexBar.setTextView(mDialogText);
//初始化数据
List<Content> list = new ArrayList<Content>();
for (int i = 0; i < 10; i++) {
Content m;
if (i < 3)
m = new Content("A", "选项" + i);
else if (i < 6)
m = new Content("F", "选项" + i);
else
m = new Content("D", "选项" + i);
list.add(m);
}
//根据a-z进行排序
Collections.sort(list, new PinYinComparator());
// 实例化自定义内容适配类
MyAdapter adapter = new MyAdapter(this, list);
// 为listView设置适配
mListView.setAdapter(adapter);
//设置SideBar的ListView内容实现点击a-z中任意一个进行定位
indexBar.setListView(mListView);
}
public class PinYinComparator implements Comparator<Content>{
@Override
public int compare(Content o1, Content o2) {
// TODO Auto-generated method stub
String py1 = o1.getPinyin();
String py2 = o2.getPinyin();
// 判断是否为空""
if (isEmpty(py1) && isEmpty(py2))
return 0;
if (isEmpty(py1))
return -1;
if (isEmpty(py2))
return 1;
String str1 = "";
String str2 = "";
try {
str1 = ((o1.getPinyin()).toUpperCase()).substring(0, 1);
str2 = ((o2.getPinyin()).toUpperCase()).substring(0, 1);
} catch (Exception e) {
System.out.println("某个str为\" \" 空");
}
return str1.compareTo(str2);
}
private boolean isEmpty(String str) {
return "".equals(str.trim());
}
}
}