import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.view.View;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class MusicListAdapter extends SimpleCursorAdapter {
private static boolean[] isFocused ;
private static int whichClick = -1;
public MusicListAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, layout, c, from, to);
isFocused = new boolean[c.getCount()];
for(int i=0;i<c.getCount();i++){
isFocused[i] = false;
}
}
public void changeBg(int position){
isFocused[whichClick==-1?0:whichClick] = false;
whichClick = position;
isFocused[position] = true;
notifyDataSetChanged();
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView m_name = (TextView) view.findViewById(R.id.m_name);
TextView m_artist = (TextView) view.findViewById(R.id.m_artist);
TextView m_time = (TextView) view.findViewById(R.id.m_time);
TextView m_size = (TextView)view.findViewById(R.id.m_size);
String title = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
m_name.setText(title.length()>14?title.substring(0, 14)+"...":title);
m_artist.setText(cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST)));
int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
int min = (duration / 1000) / 60;
int sec = (duration / 1000) % 60;
m_time.setText(min+":"+sec);
int size = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
size =(int)(((float)size/1024)/1024*100);
float fs = (float)size/100;
m_size.setText(fs+"M");
view.setBackgroundResource(isFocused[cursor.getPosition()]?android.R.drawable.alert_light_frame:android.R.drawable.alert_dark_frame);
super.bindView(view, context, cursor);
}
调用代码
mCursor =getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,
null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
musicadapter = new MusicListAdapter(PlayMusic.this,
R.layout.playmusic, mCursor, new String[] {}, new int[] {});
R.layout.playmusic:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!-- 歌曲名 -->
<TextView
android:id="@+id/m_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:layout_alignParentLeft="true"
/>
<!-- 歌手 -->
<TextView
android:id="@+id/m_artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15px"
android:layout_below="@id/m_name"
/>
<!-- 播放时间 -->
<TextView
android:id="@+id/m_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15px"
android:paddingTop="5px"
android:layout_alignRight="@id/m_name"
android:layout_alignParentRight="true"
/>
<!-- 大小 -->
<TextView
android:id="@+id/m_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15px"
android:layout_below="@id/m_time"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
分享到:
相关推荐
SQLite数据库查询结果显示在ListView中,使用SimpleCursorAdapter
SimpleCursorAdapter简单实例
通过SQLiteDatabase.openDatabase方法可以打开某一绝对路径下的数据库,将数据库的内容放到listview上
简单的利用simplecursoradapter获取联系人信息
在很多时候需要将表中的数据显示在ListView、Gallery等控件中,虽然可以直接使用BaseAdapter进行处理,但工作量比较大,Android SDK提供了一个专用于数据绑定的Adapter:SimpleCursorAdapter。 SimpleCUrsorAdapter...
NULL 博文链接:https://2528.iteye.com/blog/838329
listView适配器SimpleAdapter和SimpleCursorAdapter细节总结
简单使用SimpleCursorAdapter
ListView 与ArrayAdapter,BaseAdapter,SimpleAdapter,SimpleCursorAdapter配合使用实例。
simple-database4-cursor-adapter 通过 SimpleCursorAdapter 在 ListView 上显示 SQLite 记录
SimpleCursorAdapter:用于显示简单文本类型的listView,一般在数据库那里会用到,不过有点过时, 不推荐使用! BaseAdapter:抽象类,实际开发中我们会继承这个类并且重写相关方法,用得最多的一个Adapter!
sqlite android simpleCursorAdapter
1、获取db实例 SQLiteDatabase db=dbhelper.getWritableDatabase();...SimpleCursorAdapter cursorAdapter=new SimpleCursorAdapter(this, R.layout.golist_item, cursor, new String[]{_id,name, p
列表的显示需要三个元素: 1.ListVeiw 用来展示列表的View。 2.适配器 用来把数据映射到...SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
ListActivity+sqlite+SimpleCursorAdapter简单实例
SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, new String[] { "_id" }, new int[] { android.R.id.text1 }); // 为桌号Spinner绑定数据 ...
讲述四种适配器:ArrayAdapter SimpleAdapter SimpleCursorAdapter 自定义Adapter
简单的listview,有ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。
分析ListView的具体使用,使用adapter simpleadapter和SimpleCursorAdapter
在本实例中,首先我们利用SQLiteOpenHelper类建立一个数据库,并写好增、删、查等方法,通过SimpleCursorAdapter连接listview实现数据库的增加、查询以及长按删除的功能。 首先,我们先认识一下什么是...