android listview多列模版
在listview中,可以做出多列模版的效果,关键还是在listview的模版本,比如如下:
<LinearLayout android:id="@+id/relativeLayout1" android:layout_height="fill_parent" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/FirstText" android:layout_width="0dp" android:layout_height="wrap_content" android:text="First" android:layout_weight="1"> </TextView> <TextView android:id="@+id/SecondText" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Second" android:layout_weight="2"> </TextView> <TextView android:id="@+id/ThirdText" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Third" android:layout_weight="1"> </TextView> <TextView android:id="@+id/FourthText" android:layout_width="0dp" android:layout_height="wrap_content" android:text="Fourth" android:layout_weight="1"> </TextView> </LinearLayout>
listviewadapter.java:
public class listviewAdapter extends BaseAdapter { public ArrayList<HashMap<String,String>> list; Activity activity; public listviewAdapter(Activity activity, ArrayList<HashMap<String,String>> 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<String, String> 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<HashMap<String,String>> 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<String,String>>(); HashMap<String,String> temp = new HashMap<String,String>(); 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<String,String> temp1 = new HashMap<String,String>(); 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<String,String> temp2 = new HashMap<String,String>(); 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<String,String> temp3 = new HashMap<String,String>(); 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<String,String> temp4 = new HashMap<String,String>(); 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); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!