안드로이드 개발 질문/답변
(글 수 45,052)
회원님들의 많은 도움으로 listview에 checkbox올리는것 까지 완료 했습니다.
그런데 여기서 문제가 발생하네요...
제가 지금구현 중인 어플은 mp3플레이언데
전체 곡중에 check 된것 만 db에 저장해서 재생목록을 만들고 있는데
listview에서 checkbox 및 리스트의 클릭 메소드가 먹지 않네요;;;
checkbox만 켜졋다 꺼졋다 할뿐 listitem은 클릭 자체가 안되고...
checkbox는 켜진것과 안켜진 것에 대한 움직임이 없습니다..ㅠ
소스 첨부 했습니다.. 많은 도움 부탁드립니다.
public class addlist 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;
}
}
} 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>



