ListView 选中状态时改变背景,可以标识当前选中的是哪一个元素,在 继承 BaseAdapter 的类里实现。


1.MainActivity.java 里的相关代码:


private MyAdapter adapter = null ;list = (ListView) findViewById(R.id.listView1) ;//获取ListViewadapter = new MyAdapter(MainActivity.this) ;list.setAdapter(adapter) ;list.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {PlayMusicByNum(position) ;adapter.setSelectItem(position) ;adapter.notifyDataSetInvalidated() ;}}) ;

2.MyAdapter.java


package com.audioplayer.dao;import android.content.Context;import android.graphics.Color;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.audioplayer.bean.Music;import com.example.audioplayer.R;public class MyAdapter extends BaseAdapter {private int selectItem = -1 ;//选中的Itemprivate LayoutInflater myInflater ;MyAdapter(Context c) {myInflater = LayoutInflater.from(c) ;}@Overridepublic int getCount() {return MainActivity.musicList.size() ;}@Overridepublic Object getItem(int position) {return MainActivity.musicList.get(position).getTitle() ;}@Overridepublic long getItemId(int position) {return position ;}@Overridepublic View getView(int position, View convertView, ViewGroup Groupparent) {convertView = myInflater.inflate(R.layout.another_layout, null) ;ImageView imgLogo = (ImageView) convertView.findViewById(R.id.imageView1) ;TextView txtName = (TextView) convertView.findViewById(R.id.name) ;TextView txtArtist = (TextView) convertView.findViewById(R.id.artist) ;TextView txtDuration = (TextView) convertView.findViewById(R.id.duration) ;Music music = MainActivity.musicList.get(position) ;imgLogo.setImageResource(R.drawable.music) ;txtName.setText(music.getTitle()) ;txtArtist.setText(music.getArtist()) ;txtDuration.setText( timeParse(music.getDuration()) ) ;if(position == selectItem){convertView.setBackgroundColor(Color.CYAN) ;}else{convertView.setBackgroundColor(Color.TRANSPARENT) ;}return convertView ;}public void setSelectItem(int selectItem) {this.selectItem = selectItem ;}public static String timeParse(long duration) {//将毫秒数时间转化为“03:50”形式String time = "" ;long minute = duration / 60000 ;long seconds = duration % 60000 ;long second = Math.round((float)seconds/1000) ;if( minute < 10 ){time += "0" ;}time += minute+":" ; if( second < 10 ){time += "0" ;}time += second ;return time ;}}


更多相关文章

  1. 应用Style和Theme - Android官方文档中文翻译
  2. 【android】arraylist直接排序、去顶部 小知识点(一)
  3. android gridview点击子选项动态改变item背景颜色
  4. 在android中解析json
  5. [置顶] Android(安卓)ListView 基础入门 简介以及深入优化
  6. android findviewbyId 简化写法
  7. APPIUM Android(安卓)定位方式
  8. 实现activity全屏显示
  9. [Android(安卓)Pro] Android(安卓)studio jni中调用Log输出调试

随机推荐

  1. 跨平台框架---uniapp--打包
  2. Android(安卓)NDk 开发简易教程
  3. Android尺寸单位解析
  4. android50大秘籍
  5. 如何获取Android源码
  6. 彻底分清Activity的启动模式,明白什么情况
  7. Android中用AsyncTask简单实现多线程
  8. Android开发笔记之adb参数指南
  9. Android开发指南-三维图形
  10. android 5.0