亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

listview 選中高亮顯示實現方法

2020-04-11 12:41:03
字體:
來源:轉載
供稿:網友
人人客戶端有一個很好的導航欄,如下圖所示,當點擊左側ListView后,選中的一行就會一直呈高亮狀態顯示,圖中選中行字的顏色顯示為藍色(注意:是選中行后一直高亮,而不是只是點擊時高亮),如果再次點擊另外的一行, 則新的那一行就高亮,下面就來實現這個高亮效果的顯示;
 
剛開始實現的時候,我打算使用ListView的 getChildAt(int
pos)方法來實現,結果發現非常的cao蛋,因為ListView本身的原因,當你View
view=listView.getChildAt(pos),并且改變這個View的狀態時,你會發現,高亮的往往不是你
選中的那行,反而是其他行,這是由于ListView本身決定了,Google在設計ListView的時候,為了減少內存的消耗,使 用了一種共用的方式,即多個行共用一個View,所以才會出現點擊后亂跳的現象(這是一種很高明的方法,不過也苦了程序猿們);
于是就選擇了另外一種方式,ListView都有一個Adapter來顯示數據,而這個Adapter中的getView()卻能獲得準確的每一行,這里我們需要自定義一個繼承自BaseAdapter的Adapter來實現(如果使用ArrayAdapter等自帶的Adapter時,不會實現這樣的功能);另外,這個ListView一定要設置一個屬性:listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
即設置為單選模式,這樣當你點擊一行后,ListView就會刷新界面,還有就是給ListView設置OnItemClickListener監聽器, 當點擊一行后,就更新當前行的下標,所有代碼如下所示:
復制代碼 代碼如下:

public class ListViewDemo extends Activity {
private ListView listview;
private int cur_pos = 0;// 當前顯示的一行
private String[] items_text = { "選項一", "選項二", "選項三", "選項四", "選項五" };
private int[] items_img = { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo);
listview = (ListView) findViewById(R.id.listview);
final MyAdapter adapter = new MyAdapter(this);
listview.setAdapter(adapter);
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);// 一定要設置這個屬性,否則ListView不會刷新
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long id) {
cur_pos = position;// 更新當前行
}
});
}
private class MyAdapter extends BaseAdapter {
private LayoutInflater inflater;
public MyAdapter(Context context) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return items_text.length;
}
@Override
public Object getItem(int position) {
return items_text[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.e("TEST", "refresh once");
convertView = inflater.inflate(R.layout.list_child, null, false);
ImageView img = (ImageView) convertView
.findViewById(R.id.list_child_img);// 用于顯示圖片
TextView tv = (TextView) convertView
.findViewById(R.id.list_child_text);// 顯示文字
tv.setText(items_text[position]);
img.setImageResource(items_img[position]);
if (position == cur_pos) {// 如果當前的行就是ListView中選中的一行,就更改顯示樣式
convertView.setBackgroundColor(Color.LTGRAY);// 更改整行的背景色
tv.setTextColor(Color.RED);// 更改字體顏色
}
return convertView;
}
}
}
public class ListViewDemo extends Activity {
private ListView listview;
private int cur_pos = 0;// 當前顯示的一行
private String[] items_text = { "選項一", "選項二", "選項三", "選項四", "選項五" };
private int[] items_img = { R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view_demo);
listview = (ListView) findViewById(R.id.listview);
final MyAdapter adapter = new MyAdapter(this);
listview.setAdapter(adapter);
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);// 一定要設置這個屬性,否則ListView不會刷新
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long id) {
cur_pos = position;// 更新當前行
}
});
}
private class MyAdapter extends BaseAdapter {
private LayoutInflater inflater;
public MyAdapter(Context context) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return items_text.length;
}
@Override
public Object getItem(int position) {
return items_text[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Log.e("TEST", "refresh once");
convertView = inflater.inflate(R.layout.list_child, null, false);
ImageView img = (ImageView) convertView
.findViewById(R.id.list_child_img);// 用于顯示圖片
TextView tv = (TextView) convertView
.findViewById(R.id.list_child_text);// 顯示文字
tv.setText(items_text[position]);
img.setImageResource(items_img[position]);
if (position == cur_pos) {// 如果當前的行就是ListView中選中的一行,就更改顯示樣式
convertView.setBackgroundColor(Color.LTGRAY);// 更改整行的背景色
tv.setTextColor(Color.RED);// 更改字體顏色
}
return convertView;
}
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情中文字幕在线| 久久久在线免费观看| 亚洲福利视频免费观看| 日韩网站免费观看高清| 97国产真实伦对白精彩视频8| 色婷婷成人综合| 日本精品久久电影| 中文字幕亚洲欧美一区二区三区| 精品国产福利在线| 精品成人69xx.xyz| 久久九九全国免费精品观看| 98视频在线噜噜噜国产| 国产人妖伪娘一区91| 精品视频在线观看日韩| 高清日韩电视剧大全免费播放在线观看| 久久精品国产久精国产一老狼| 欧美日韩在线另类| 亚洲欧洲日产国码av系列天堂| 日韩av在线天堂网| 成人精品久久一区二区三区| 深夜福利日韩在线看| 欧美野外wwwxxx| 国产成人精品久久| 亚洲性生活视频在线观看| 最新国产成人av网站网址麻豆| 精品久久久久久中文字幕| 一区二区三区视频免费| 亚洲精品国产精品国自产观看浪潮| 疯狂欧美牲乱大交777| 欧美激情精品久久久久久蜜臀| 国产91精品视频在线观看| 亚洲美女福利视频网站| 国产午夜精品理论片a级探花| 亚洲欧洲av一区二区| 欧洲永久精品大片ww免费漫画| 国产狼人综合免费视频| 亚洲成年人影院在线| 日韩欧美在线观看| 一本大道久久加勒比香蕉| 久久精品国产久精国产思思| 久久激情视频免费观看| 色www亚洲国产张柏芝| 国产日韩欧美在线播放| 国产一区在线播放| 欧美视频国产精品| 成人国产亚洲精品a区天堂华泰| 亚洲国产精品推荐| 国产精品久久综合av爱欲tv| 国产欧美日韩中文字幕| 尤物tv国产一区| 日韩亚洲欧美成人| 亚洲a中文字幕| 久久国产精品久久久久| 中文字幕最新精品| 欧美国产日韩一区二区| 久久久欧美一区二区| 九色精品美女在线| 欧美第一黄网免费网站| 国产亚洲欧美日韩精品| 色在人av网站天堂精品| 亚洲精品v欧美精品v日韩精品| 精品视频久久久久久久| 国产日韩精品视频| 亚洲国模精品私拍| 国产精品69精品一区二区三区| 美女扒开尿口让男人操亚洲视频网站| 亚洲天堂av在线免费| 精品国产乱码久久久久酒店| 久久免费视频网站| 国产精品wwwwww| 欧美激情区在线播放| 国产精品日韩在线播放| 亚洲桃花岛网站| 亚洲欧美制服中文字幕| 久久久中精品2020中文| 欧美激情日韩图片| 欧美色videos| 亚洲成人黄色在线观看| 亚洲视频精品在线| 久久精品中文字幕免费mv| 国产一区二区香蕉| 国产免费一区二区三区在线观看| 欧美午夜激情在线| 国产精品偷伦视频免费观看国产| 日韩精品免费视频| 国内精品久久久久久久久| 57pao国产成人免费| 97久久精品人人澡人人爽缅北| 久久噜噜噜精品国产亚洲综合| 亚洲日韩欧美视频一区| 国产精品露脸av在线| 欧美裸体xxxx极品少妇| 国产日韩av在线| 奇门遁甲1982国语版免费观看高清| 九九久久久久久久久激情| 91免费国产网站| 色一区av在线| 日韩视频亚洲视频| 成人免费看片视频| 国产精品久久久久影院日本| 性日韩欧美在线视频| 国产精品九九九| 欧美成人免费视频| 色狠狠av一区二区三区香蕉蜜桃| 国产精品自产拍高潮在线观看| 一本一道久久a久久精品逆3p| 亚洲天堂网在线观看| 国产在线拍揄自揄视频不卡99| 一区二区三区高清国产| 久久久久久久久久久91| 中文字幕日韩精品有码视频| 亚洲精品永久免费精品| 国产一区二区日韩| 中文字幕欧美日韩在线| www.亚洲一二| 亚洲理论电影网| 久久久久国产精品一区| 国产欧美最新羞羞视频在线观看| 欧美一区二区色| 欧美大胆在线视频| 国产综合在线视频| 国产一区二区三区中文| 国产精品h在线观看| 久久久噜久噜久久综合| 国产亚洲精品美女久久久久| 欧美三级免费观看| 亚洲欧美日韩在线高清直播| 久久久久久久久久婷婷| 欧美一级片久久久久久久| 国产玖玖精品视频| 国产成人久久久精品一区| 亚洲精品一区久久久久久| 一区二区中文字幕| 成人福利视频在线观看| 久久九九亚洲综合| 国产成人一区二区三区| 欧美在线观看视频| 国产精品爱久久久久久久| 欧美日韩亚洲国产一区| 精品国产乱码久久久久久虫虫漫画| 欧美另类69精品久久久久9999| 亚洲精品国产美女| 国产精品99导航| 亚洲人成绝费网站色www| 中文字幕无线精品亚洲乱码一区| www.久久撸.com| 亚洲福利影片在线| 91精品国产高清自在线看超| 日韩美女免费观看| 国产日韩一区在线| 久久视频免费在线播放| 在线国产精品播放| 国产一区二区三区高清在线观看| 日韩免费视频在线观看| 欧美激情综合色综合啪啪五月| 国产精品日本精品| 国产精品免费电影| 久久久亚洲欧洲日产国码aⅴ| 精品久久久视频| 久久久精品国产亚洲| 日韩av免费在线观看| 亚洲xxxx做受欧美| 国产精品一区二区性色av| 欧美一级片免费在线|