现在的位置: 首页 > 综合 > 正文

ListView数据导入

2018年02月08日 ⁄ 综合 ⁄ 共 3308字 ⁄ 字号 评论关闭

1 定义适配器。

public class CloudFileInfoAdapter extends BaseAdapter{

	private class ViewHolder
	{
		TextView filename;
		TextView filesize;
		ImageView fileicon;
    }
	
	private LayoutInflater mInflater = null;
	private Bitmap mIconBack = null,mIconfolder = null,mIcontxt = null;

	List<String> m_lsFileName = new ArrayList<String>();
	List<Long> m_lsFileSize = new ArrayList<Long>();
	List<Boolean> m_lsIsDir = new ArrayList<Boolean>();
	
	public CloudFileInfoAdapter(Context context,List<String> fileName,List<Long> fileSize,List<Boolean> isDir){
		mInflater = LayoutInflater.from(context);
		
		m_lsFileName = fileName;
		m_lsFileSize = fileSize;
		m_lsIsDir = isDir;
		
		mIconBack = BitmapFactory.decodeResource(context.getResources(),R.drawable.back);
		mIconfolder = BitmapFactory.decodeResource(context.getResources(),R.drawable.folder);
		mIcontxt = BitmapFactory.decodeResource(context.getResources(),R.drawable.txt);
	}
	  
	@Override
	public int getCount() {
		return m_lsFileName.size();
	}

	@Override
	public Object getItem(int position) {
		return m_lsFileName.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View view, ViewGroup parent)
	{
	    ViewHolder holder;

	    if(view == null)
	    {
	    	view = mInflater.inflate(R.layout.fileitem, null);
	    	holder = new ViewHolder();
	    	holder.fileicon = (ImageView) view.findViewById(R.id.icon);
	    	holder.filename = (TextView) view.findViewById(R.id.filename);
	    	holder.filesize = (TextView) view.findViewById(R.id.filesize);
	    	
	    	view.setTag(holder);
	    }
	    else
	    {
	    	holder = (ViewHolder)view.getTag();
	    }
	    
	    holder.filename.setText(m_lsFileName.get(position));
	    holder.filesize.setText(m_lsFileSize.get(position).toString());
	    
	    if(m_lsIsDir.get(position))
	    {
	    	holder.fileicon.setImageBitmap(mIconfolder);
	    }
	    else
	    {
	    	holder.fileicon.setImageBitmap(mIcontxt);
	    }
	    return view;
    }

}

2 定义ListView中单项布局(fileitem.xml),其中注意item的高度需要第一个控件撑起来

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="horizontal" >

    <!--撑起ListItemView-->
    <TextView 
        android:layout_height="50dp"
        android:layout_width="1dip"
        android:id="@+id/first"
        android:layout_alignParentLeft="true"
        />
    <ImageView
        android:id="@+id/icon"
        android:layout_width="35dip"
        android:layout_height="35dip"
        android:layout_toRightOf="@id/first"
        android:layout_centerVertical="true"
        />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_toRightOf="@id/icon"
        android:orientation="vertical">
	    <TextView
	        android:id="@+id/filename"
	        android:layout_width="fill_parent"
	        android:layout_height="30dp"/>
        <TextView
            android:id="@+id/filesize"
            android:layout_width="fill_parent"
            android:layout_height="20dp"/>
    </LinearLayout>
</RelativeLayout>

3 定义整体布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
	<TextView
	    android:id="@+id/filePath"
	    android:layout_width="match_parent"
	    android:layout_height="wrap_content"
	    android:padding="5dp"
	    android:textSize="18sp"/>
    <ListView
        android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

4 使用该适配器,注意需要继承ListActivity

public class PersonalFileActivity extends ListActivity {
...
	setListAdapter(new CloudFileInfoAdapter(PersonalFileActivity.this, m_lsFileName, m_lsFileSize,m_lsIsDir));
...
}

抱歉!评论已关闭.