안드로이드 개발 질문/답변
(글 수 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>