android 自定义listview 多列,android listview的多列模版实例代码

android listview多列模版

在listview中,可以做出多列模版的效果,关键还是在listview的模版本,比如如下:

android:id="@+id/relativeLayout1"

android:layout_height="fill_parent"

android:layout_width="fill_parent"

xmlns:android="http://schemas.android.com/apk/res/android">

android:id="@+id/FirstText"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="First"

android:layout_weight="1">

android:id="@+id/SecondText"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="Second"

android:layout_weight="2">

android:id="@+id/ThirdText"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="Third"

android:layout_weight="1">

android:id="@+id/FourthText"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:text="Fourth"

android:layout_weight="1">

listviewadapter.java:

public class listviewAdapter extends BaseAdapter

{

public ArrayList> list;

Activity activity;

public listviewAdapter(Activity activity, ArrayList> list) {

super();

this.activity = activity;

this.list = list;

}

public int getCount() {

// TODO Auto-generated method stub

return list.size();

}

public Object getItem(int position) {

// TODO Auto-generated method stub

return list.get(position);

}

public long getItemId(int position) {

// TODO Auto-generated method stub

return 0;

}

private class ViewHolder {

TextView txtFirst;

TextView txtSecond;

TextView txtThird;

TextView txtFourth;

}

public View getView(int position, View convertView, ViewGroup parent) {

// TODO Auto-generated method stub

// TODO Auto-generated method stub

ViewHolder holder;

LayoutInflater inflater = activity.getLayoutInflater();

if (convertView == null)

{

convertView = inflater.inflate(R.layout.listview_row, null);

holder = new ViewHolder();

holder.txtFirst = (TextView) convertView.findViewById(R.id.FirstText);

holder.txtSecond = (TextView) convertView.findViewById(R.id.SecondText);

holder.txtThird = (TextView) convertView.findViewById(R.id.ThirdText);

holder.txtFourth = (TextView) convertView.findViewById(R.id.FourthText);

convertView.setTag(holder);

}

else

{

holder = (ViewHolder) convertView.getTag();

}

HashMap map = list.get(position);

holder.txtFirst.setText(map.get(FIRST_COLUMN));

holder.txtSecond.setText(map.get(SECOND_COLUMN));

holder.txtThird.setText(map.get(THIRD_COLUMN));

holder.txtFourth.setText(map.get(FOURTH_COLUMN));

return convertView;

}

主程序:

public class MultiColumnActivity extends Activity

{

private ArrayList> list;

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ListView lview = (ListView) findViewById(R.id.listview);

populateList();

listviewAdapter adapter = new listviewAdapter(this, list);

lview.setAdapter(adapter);

}

private void populateList() {

list = new ArrayList>();

HashMap temp = new HashMap();

temp.put(FIRST_COLUMN,"Colored Notebooks");

temp.put(SECOND_COLUMN, "By NavNeet");

temp.put(THIRD_COLUMN, "Rs. 200");

temp.put(FOURTH_COLUMN, "Per Unit");

list.add(temp);

HashMap temp1 = new HashMap();

temp1.put(FIRST_COLUMN,"Diaries");

temp1.put(SECOND_COLUMN, "By Amee Products");

temp1.put(THIRD_COLUMN, "Rs. 400");

temp1.put(FOURTH_COLUMN, "Per Unit");

list.add(temp1);

HashMap temp2 = new HashMap();

temp2.put(FIRST_COLUMN,"Note Books and Stationery");

temp2.put(SECOND_COLUMN, "By National Products");

temp2.put(THIRD_COLUMN, "Rs. 600");

temp2.put(FOURTH_COLUMN, "Per Unit");

list.add(temp2);

HashMap temp3 = new HashMap();

temp3.put(FIRST_COLUMN,"Corporate Diaries");

temp3.put(SECOND_COLUMN, "By Devarsh Prakashan");

temp3.put(THIRD_COLUMN, "Rs. 800");

temp3.put(FOURTH_COLUMN, "Per Unit");

list.add(temp3);

HashMap temp4 = new HashMap();

temp4.put(FIRST_COLUMN,"Writing Pad");

temp4.put(SECOND_COLUMN, "By TechnoTalaktive Pvt. Ltd.");

temp4.put(THIRD_COLUMN, "Rs. 100");

temp4.put(FOURTH_COLUMN, "Per Unit");

list.add(temp4);

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值