2014-12-28 3 views
-3

내가 지금까지 해왔 던 작업은 mp3 파일을 감지하여 lisview의 체크 박스와 함께 표시하는 것입니다. 문제는 일단 내가 선택한 항목을 확인한 다음 스크롤하면 아래에있는 항목이 사라집니다. android : listbox의 체크 박스

내 코드입니다 :이 어댑터

package com.example.cameraapp; 

import android.app.Activity; 
import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.CheckBox; 
import android.widget.TextView; 
public class CustomAdapter extends ArrayAdapter<Model>{ 
Model[] modelItems = null; 
Context context; 
public CustomAdapter(Context context, Model[] resource) { 
super(context,R.layout.songlayout,resource); 
// TODO Auto-generated constructor stub 
this.context = context; 
this.modelItems = resource; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
// TODO Auto-generated method stub 
LayoutInflater inflater = ((Activity)context).getLayoutInflater(); 
convertView = inflater.inflate(R.layout.songlayout, parent, false); 
TextView name = (TextView) convertView.findViewById(R.id.songsTexView); 
CheckBox cb = (CheckBox) convertView.findViewById(R.id.checkBox1); 
name.setText(modelItems[position].getName()); 
if(modelItems[position].getValue() == 1) 
cb.setChecked(true); 
else 
cb.setChecked(false); 
return convertView; 
} 
} 

입니다

이는

package com.example.cameraapp; 

import java.io.File; 
import java.util.ArrayList; 
import java.util.List; 

import android.app.Activity; 
import android.content.Context; 
import android.content.ContextWrapper; 
import android.os.Bundle; 
import android.os.Environment; 
import android.view.Menu; 
import android.widget.ListView; 
public class FinalChoice extends Activity { 
ListView lv; 
int chuba=0; 
Model[] modelItems; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.listview1hold); 
lv = (ListView) findViewById(R.id.listView1); 


String mp3Directory = "/Music"; 
String directoryPath= Environment.getExternalStorageDirectory().getAbsolutePath()+mp3Directory; 
List<File> list = getMP3Files(directoryPath); 
modelItems = new Model[list.size()]; 
//print in LogCat the list of .mp3: 
for(int a=0;a<list.size();a++){ 
modelItems[a]=new Model(list.get(a).getName(), 0); 

} 


CustomAdapter adapter = new CustomAdapter(this, modelItems); 
lv.setAdapter(adapter); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
return true; 
} 



public List<File> getMP3Files(String directory) { 
     List<File> files = new ArrayList<File>(); 
     File folder = new File(directory); 
     for (File file : folder.listFiles()) { 
      if (file.isFile()) { 
       if (file.getName().endsWith(".mp3") || file.getName().endsWith(".MP3")) { 
        files.add(file); 
       } 
      } 
     } 
     return files; 
    } 
} 

답변