美文网首页
Android Stdio中ListView的使用

Android Stdio中ListView的使用

作者: 左右_5536 | 来源:发表于2018-10-21 12:33 被阅读0次

    首先我说明一下这篇文章实现的效果是怎样的。

    效果图

    我这里写上中下三个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。

    写了那么多的文字,来看一下效果图。

    基本格式
    按了加载更多
    没有数据的情况下

    好啦,这个结束啦!!!有什么问题多多指教,安卓新手。

    相关文章

      网友评论

          本文标题:Android Stdio中ListView的使用

          本文链接:https://www.haomeiwen.com/subject/eylkzftx.html