listview 的优化

来源:互联网 发布:舰娘 mac魔改 编辑:程序博客网 时间:2024/06/11 12:47

ACTIVTTY


1.

public class CustomListViewActivity extends ListActivity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.custom_list_atv);        setListAdapter(new CustomListViewAdapter(this));    }}

2.

package com.example.administrator.l1;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import com.example.administrator.l1.CustomListCellData;import com.example.administrator.l1.R;public class CustomListViewAdapter extends BaseAdapter {    private Context context;    public  CustomListViewAdapter(Context context){        this.context= context;    }    public  Context getContext(){        return context;    }    private CustomListCellData[] data = new CustomListCellData[]{            new CustomListCellData("img1","dec img1",R.drawable.img1),            new CustomListCellData("img2","dec img2",R.drawable.img2),            new CustomListCellData("img3","dec img3",R.drawable.img3),    };    @Override    public int getCount() {        return data.length;    }    @Override    public CustomListCellData getItem(int i) {        return data[i];    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        LinearLayout ll= null;        if (view!=null){            ll=(LinearLayout)view;        }else{            ll= (LinearLayout) LayoutInflater.from(getContext()).inflate(R.layout.custom_listcell,null);        }        CustomListCellData data = getItem(i);        ImageView icon = (ImageView) ll.findViewById(R.id.icon);        TextView name = (TextView) ll.findViewById(R.id.name);        TextView dec = (TextView) ll.findViewById(R.id.dec);        icon.setImageResource(data.iconId);        name.setText(data.name);        dec.setText(data.dec);        return ll;    }}
3.
package com.example.administrator.l1;/** * Created by Administrator on 2017/1/7. */public class CustomListCellData {    public CustomListCellData (String name,String dec,int iconId){        this.name=name;        this.dec = dec;        this.iconId = iconId;    }    public String name="";    public String dec="";    public int iconId=0;}
布局文件
1.
<?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">    <ListView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:id="@android:id/list"        android:layout_gravity="center_vertical"        android:layout_weight="1" />    <Button        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Click me"        android:layout_gravity="bottom" /></LinearLayout>



2.

<?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="horizontal">    <ImageView        android:layout_width="120dp"        android:layout_height="120dp"        android:id="@+id/icon" />    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_weight="1"        android:orientation="vertical" >        <TextView            android:id="@+id/name"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="Large Text"            android:textAppearance="?android:attr/textAppearanceLarge" />        <TextView            android:id="@+id/dec"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="TextView" />    </LinearLayout></LinearLayout>

0 0