[Source] Æù³» À½¾Ç ÆÄÀÏ ¸ñ·Ï Àоî¿À±â |
|
|
 |
8³â Àü |
public class MusicList extends ListActivity {
private ListView addlist;
private CheckBox cb;
private ArrayList<Music> addsong = new ArrayList<Music>();
int MAX = 1000
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.listform);
addlist = getListView();
loadlist();
}
private void loadlist(){
System.gc();
Music[] music = new Music[MAX];
int cnt = 0;
String[] mcursor = new String[]{
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME};
Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mcursor, null,null,null);
if (cur.moveToFirst()){
String title;
int titlecolumn = cur.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME);
do{
title = cur.getString(titlecolumn);
music[cnt] = new Music(title);
addsong.add(music[cnt]);
cnt ++;
} while(cur.moveToNext());
}
Musicinfo songlist = new Musicinfo(this, R.layout.listform, addsong);
setListAdapter(songlist);
addlist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
private class Musicinfo extends ArrayAdapter<Music>{
private ArrayList<Music> items;
public Musicinfo (Context context, int textViewId, ArrayList<Music> items){
super(context, textViewId, items);
this.items = items;
}
@Override
public View getView(int position, View view, ViewGroup parent){
View v = view;
if(v == null){
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.listform, null);
}
Music m = items.get(position);
if(m != null){
TextView tv = (TextView)v.findViewById(R.id.song_item_layout);
cb = (CheckBox)v.findViewById(R.id.check);
if(tv != null){
tv.setText(m.getTitle());
}
}
return v;
}
}
class Music{
private String Title;
public Music(String _title){
this.Title = _title;
}
public String getTitle(){
return Title;
}
}
//main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<CheckBox android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/song_item_layout"
android:layout_toLeftOf="@id/check"
android:textSize="15px" />
</RelativeLayout>
|
|
̵̧ : 450 |
̵̧
¸ñ·Ï
|
|