现在任何人都可以帮助我如何看待我的观点。请帮助我,我太困惑了。
这是我的代码:--------
电话簿列表视图.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/searchTxtBox"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="65dp"
android:hint="@string/searchHintTxt"
android:singleLine="true"
android:drawableLeft="@android:drawable/ic_search_category_default"
android:drawablePadding="0dp"
android:text="" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fadingEdge="vertical"
android:fastScrollEnabled="true"
android:padding="2dp"
android:layout_below="@+id/searchTxtBox" >
</ListView>
<TextView
android:id="@+id/phoneBookEmptyView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/phoneBookEmptyMsg"
android:textColor="@color/white"
android:layout_below="@+id/searchTxtBox"
android:layout_marginTop="5dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
并在 PhoneBookList.java 文件中
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.phonebooklistview);
listView = getListView();
adapter = new ItemsAdapter(this);
adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
listView.setTextFilterEnabled(true);
//listView.setFastScrollEnabled(true);
listView.setOnItemLongClickListener(this);
listView.setItemsCanFocus(false);
listView.setEmptyView(findViewById(R.id.phoneBookEmptyView));
registerForContextMenu(listView);
}
private class ItemsAdapter extends BaseAdapter implements SectionIndexer
{
HashMap<String, Integer> alphaIndexer;
String[] sections;
private LayoutInflater inflater;
String[][] items;
public ItemsAdapter(Context context)
{
inflater = LayoutInflater.from(context);
this.items = phoneBookDataArr;
alphaIndexer = new HashMap<String, Integer>();
int size = items.length;
for (int x = 0; x < size; x++)
{
String name=items[x][2];
String ch = name.substring(0, 1);
ch = ch.toUpperCase();
alphaIndexer.put(ch, x);
Log.e(TAG,"alphaIndexer="+ch);
}
Set<String> sectionLetters = alphaIndexer.keySet();
ArrayList<String> sectionList = new ArrayList<String>(sectionLetters);
Collections.sort(sectionList);
sections = new String[sectionList.size()];
sectionList.toArray(sections);
}
//@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
// here my custom listviewcontentview goes.
}
public int getCount()
{
return items.length;
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return 0;
}
public int getPositionForSection(int section)
{
Log.e(TAG,"getPositionForSection="+section);
return alphaIndexer.get(sections[section]);
}
public int getSectionForPosition(int position)
{
Log.e(TAG,"getSectionForPosition="+position);
return 1;
}
public Object[] getSections()
{
Log.e(TAG,"getSections="+sections.length);
for (String str : sections)
{
Log.e(TAG,str);
}
return sections;
}
}