1.layout.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" >
<ListView
android:id="@+id/lv_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ListView
android:id="@+id/lv_lv2"
android:layout_width="24dp"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:background="#ffafafaf"/>
</RelativeLayout>2.activity中进行编写
private void setNavListView(){
List<String> chars=new ArrayList<String>();
for(char c='A';c<='Z';c++){
chars.add(String.valueOf(c));
}
final ListView lsv=(ListView) findViewById(R.id.navList);
lsv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
final ArrayAdapter<String> adapter=
new ArrayAdapter<String>(this,
R.layout.list_item_01, chars){
public View getView(int position, View convertView, android.view.ViewGroup parent) {
TextView v=(TextView) super.getView(position, convertView, parent);
int checked=lsv.getCheckedItemPosition();
if(position==checked){
v.setTextColor(Color.RED);
}else{
v.setTextColor(Color.BLACK);
}
return v;
};
};
lsv.setAdapter(adapter);
lsv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//1.获得点击的内容
String charStr=(String)parent.getItemAtPosition(position);
//2.获得点击的字符在内容列表中的初始位置
int minPos=mAdapter.getPositionForSection(charStr.charAt(0));
//3.设置listview的顶端元素的显示位置
if(minPos==-1)return;
mList.setSelectionFromTop(minPos,0);
//4.刷新此listview,让点击item以红色字体显示
adapter.notifyDataSetChanged();
}
});

1958

被折叠的 条评论
为什么被折叠?



