<span style="font-family: Arial, Helvetica, sans-serif;">import android.content.Context;</span>
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ListViewAdapter extends BaseAdapter {
private List<String> mList;
//private Context mContext; 此处也可以使用传递参数Context
private MainActivity mActivity;
private LayoutInflater mInflater;
private class ViewHolder {
ImageView iv;
TextView tv;
}
public ListViewAdapter(MainActivity activity, List<String> list) {
mActivity = activity;
mList = list;
}
// public ListViewAdapter(Context context,List<String>list){
// mContext=context;
// mList=list;
// }
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
//mInflater = LayoutInflater.from(mContext);
mInflater=LayoutInflater.from(mActivity);
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_item, null);//这行代码不能写在判断语句的外边
holder.iv = (ImageView) convertView.findViewById(R.id.imageView);
holder.tv = (TextView) convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.iv.setBackgroundResource(R.drawable.item);
holder.tv.setText(mList.get(position).toString());
return convertView;
}
}
主Activity页面代码如下:
public class MainActivity extends Activity {
public static List<String> list;
public static ListView lv;
private ListViewAdapter adapter;
public static final int SEARCH_MUSIC_SUCCESS=0;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list=new ArrayList<String>();
findView();
show();
}
public void findView(){
lv=(ListView) findViewById(R.id.listView1);
// adapter=new ListViewAdapter(getApplicationContext(), list);
adapter=new ListViewAdapter(MainActivity.this, list);
}
public void Search(File file,String[] ext){
if (file != null) {
if (file.isDirectory()) {// 如果是文件夹
File[] listFile = file.listFiles();// 列出所有的文件,存放在listFile这个数组中,数组类型是File
if (listFile != null) {
for (int i = 0; i < listFile.length; i++) {
Search(listFile[i], ext);// 递归,直到把所有的文件夹都遍历完
}
}
} else {// 否则就是文件了
String fileName = file.getAbsolutePath();// 返回抽象路径名的绝对路径名字符串
String name = file.getName();// 直接获得文件的名称
for (int i = 0; i < ext.length; i++) {
if (fileName.endsWith(ext[i])) {// 判断绝对名字里是不是有“.mp3格式”,格式是我们自定义传入的
list.add(name);// 列表中添加歌曲的名称
break;
}
}
}
}
}
public void show(){
new Thread(new Runnable() {
public void run() {
String[] ext = { ".mp3" };
File file = Environment.getExternalStorageDirectory();
Search(file, ext);
hander.sendEmptyMessage(SEARCH_MUSIC_SUCCESS);
}
}).start();
}
private Handler hander=new Handler(){
public void handleMessage(Message msg){
switch (msg.what){
case SEARCH_MUSIC_SUCCESS:
lv.setAdapter(adapter);
}
}
};
}