效果图
TOP1: ListView适配器;
package com.yd.listdemo;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
/**
* Created by YD on 2016/12/18.
*/
public class ListViewAdapter extends BaseAdapter {
private List<String> list = new ArrayList<String>();
private Context mContext;
public ListViewAdapter(Context mContext, List<String> list) {
this.mContext = mContext;
this.list = list;
}
@Override
public int getCount() {
if (list.size() > 0) {
return list.size();
}
return 0;
}
@Override
public Object getItem(int position) {
return list.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 ListViewAdapter.ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.content, null);
vh.info = (TextView) convertView.findViewById(R.id.info);
convertView.setTag(vh);
} else {
vh = (ViewHolder) convertView.getTag();
}
vh.info.setText(list.get(position));
return convertView;
}
class ViewHolder {
TextView info;
}
}
TOP2: 添加头部和底部布局;
public class MainActivity extends Activity {
ListView lv;
List<String> list = new ArrayList<String>();
@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++) {
list.add(i + "");
}
final ListViewAdapter listAdapter = new ListViewAdapter(this, list);
//添加头部布局
View viewFoot = getLayoutInflater().from(this).inflate(R.layout.listview_bottom, null);
//这里需要注意不能直接用findViewById,需要在前面加上你当前头部View.fv****
Button success = (Button) viewFoot.findViewById(R.id.success);
success.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "底部", Toast.LENGTH_LONG).show();
}
});
//头部
View viewHead = getLayoutInflater().from(this).inflate(listview_head, null);
final ProgressBar pb = (ProgressBar) viewHead.findViewById(R.id.pb);
Button button = (Button) viewHead.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "头部按钮", Toast.LENGTH_LONG).show();
pb.setVisibility(View.GONE);
}
});
//注意:添加头部和底部布局的时候必须在setAdapter之前;
lv.addHeaderView(viewHead);
lv.addFooterView(viewFoot);
lv.setAdapter(listAdapter);
}