本文共 4605 字,大约阅读时间需要 15 分钟。
闲暇使来做了个简单的listview添加头部和尾部布局的demo.为自己记忆也为大家提供一份参考。
首先是自己的三个布局:
很简单的
mainActivity中的布局:
<RelativeLayout xmlns:android=""
xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" ><ListView
android:id="@+id/myListview" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" ></ListView>
</RelativeLayout> 尾布局:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" ><Button
android:id="@+id/button1" android:layout_width="wrap_content" android:layout_gravity="center" android:layout_height="wrap_content" android:text="清除列表" /></LinearLayout>
头布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" ><TextView
android:id="@+id/textView1" android:layout_width="191dp" android:layout_height="wrap_content" android:layout_weight="0.06" android:text="头部标签" android:textSize="34sp" android:textColor="#ff0000" /></LinearLayout>
然后是代码部分:
主页面代码:
package com.example.listviewdemo;
import java.util.ArrayList;
import java.util.List;import android.os.Bundle;
import android.app.Activity; import android.graphics.Color; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView;public class MainActivity extends Activity {
ListView lv; List<Person>lists=new ArrayList<Person>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv=(ListView) findViewById(R.id.myListview); for(int i=0;i<20;i++){ Person p=new Person(); p.setPname("张三"+i); p.setPage(23+i); lists.add(p); } System.out.println("數量:="+lists.size()); final listViewadap adapter=new listViewadap(lists, this); View v=getLayoutInflater().from(this).inflate(R.layout.btn_layout, null); Button btn=(Button) v.findViewById(R.id.button1); if(lists.size()>0){ v.setVisibility(View.VISIBLE); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub lists.clear(); adapter.notifyDataSetChanged(); } }); }else{ v.setVisibility(View.GONE); } View header=getLayoutInflater().inflate(R.layout.head, null); lv.addHeaderView(header); lv.addFooterView(v); lv.setAdapter(adapter);}
@Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }}
适配器的代码:
package com.example.listviewdemo;
import java.util.ArrayList;
import java.util.List;import android.content.Context;
import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;public class listViewadap extends BaseAdapter {
private List<Person>lists=new ArrayList<Person>(); private Context context; public listViewadap(List<Person> lists,Context context) { super(); if(lists.size()>0){ System.out.println("============================================"+lists.size()); this.lists = lists; this.context=context; } }@Override
public int getCount() { if(lists.size()>0){ return lists.size(); } return 0; }@Override
public Object getItem(int position) { return lists.get(position); }@Override
public long getItemId(int position) { return position; }@Override
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh=null; if(convertView==null){ vh=new ViewHolder(); convertView=LayoutInflater.from(context).inflate(R.layout.content,null); vh.name=(TextView) convertView.findViewById(R.id.textView1); vh.age=(TextView) convertView.findViewById(R.id.textView2); convertView.setTag(vh); }else{ vh=(ViewHolder) convertView.getTag(); } System.out.println("對象:==========================="+lists.get(0)+"=============="+lists.get(0).getPname()); vh.name.setText(lists.get(position).getPname()); vh.age.setText(Integer.toString(lists.get(position).getPage())); return convertView; } class ViewHolder{ TextView name; TextView age; } }还有一个简单的person类,简单就不贴了
转载地址:http://yezpi.baihongyu.com/