首先我说明一下这篇文章实现的效果是怎样的。
效果图我这里写上中下三个layout来写。
所有的前提都是先建一个项目,建项目不会的请看我的另一个笔记http://note.youdao.com/noteshare?id=4cd08a266542b4c60a834da295b0e2b0
我建了一个HeadAndFootOtherActivity,和headfoot_layout.xml(承载ListView)、lvhead_layout.xml(承载ImageView)、 lvfoot_layout.xml(承载Button)。
我在headfoot_xml写了两个,一个是ListView,一个是TextView,TextView是为了当ListView显示的数据为空时显示的数据,给用户一个比较友好的画面。
用listView显示给用户信息列表显示图片占位
设置加载更多的按钮
然后来看Activity中的设置
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class HeadAndFootOtherActivityextends AppCompatActivity {
private ListViewlistView;
private Listlist;
private TextViewtextView;
private ArrayAdapterarrayAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.headfoot_layout); //加载布局
listView = findViewById(R.id.hfLV); //获取布局中的listView
textView = findViewById(R.id.hfTV); //获取布局中的textView
list =new ArrayList<>(); //模拟listView中的数据
for (int i =0; i <20; i++) {
list.add("item" + i);
}
//把list的数据加载到适配器中
arrayAdapter =new ArrayAdapter<>(HeadAndFootOtherActivity.this, android.R.layout.simple_list_item_1, list);
//将lvhead_layout xml布局文件转换成view视图
View headerView = LayoutInflater.from(HeadAndFootOtherActivity.this).inflate( R.layout.lvhead_layout, null);
//从headView视图中获取imageView控件
ImageView imageView = headerView.findViewById(R.id.iv);
//给imageView设置资源,这个资源我放在res下的drawable,名字为p1
imageView.setImageResource(R.drawable.p1);
//给listView添加头部视图
listView.addHeaderView(headerView);
//接下来类似加头部视图的做法
View footerView = LayoutInflater.from(HeadAndFootOtherActivity.this).inflate(R.layout.lvfoot_layout, null);
Button btn = footerView.findViewById(R.id.btn);
//添加按钮的点击事件,模拟点击加载更多的数据
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int index =list.size();
for (int i = index; i < index +10; i++) {
list.add("item" + i);
}
//把适配器中的数据更新
arrayAdapter.notifyDataSetChanged();
}
});
//给listView加载尾部视图
listView.addFooterView(footerView);
//这里需要注意的是,不管是头部视图还是尾部视图都必须在加载适配器之前加载,不然会报错
listView.setAdapter(arrayAdapter);
//这一句是当你的listView没有任何数据时,显示这个TextView,对用户显示比较友好。
listView.setEmptyView(textView);
}
}
写到这里,listView就基本上写完了,不要忘记在你的注册表里面注册你的Activity。
写了那么多的文字,来看一下效果图。
基本格式按了加载更多
没有数据的情况下
好啦,这个结束啦!!!有什么问题多多指教,安卓新手。
网友评论