Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)

Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView的原理,ListView的使用步骤,ListView填充数据案例,ListView填充多个数据)

    • 1.用代码添加布局文件
      • 1.添加控件
      • 1.添加布局
    • 2.ListView的原理
    • 3.ListView的使用步骤
    • 4.ListView填充数据案例
    • 5.ListView填充多个数据

Android 入门第三讲03-Activity的生命周期(理论)(Activity生命周期中的方法,Activity生命周期(一个和两个activity的生命周期分析))

1.用代码添加布局文件

1.添加控件

第一步先给layout文件的布局添加一个id
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第1张图片
第二步在activity里通过代码拿到布局再添加控件
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第2张图片
第三步根据布局的属性来控制方位
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第3张图片
提示:如果添加的控件覆盖了原来的控件,看谁在上面,这里拿按钮做例子,添加的按钮在上面,所以下面的按钮就失效了

1.添加布局

第一步先新建一个布局
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第4张图片
第二步在activity添加布局
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第5张图片

2.ListView的原理

1.运行程序时,屏幕显示几条条目,listview就加载几条
2.listview本身没有内容,需要adapter来添加内容

Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第6张图片

3.ListView的使用步骤

第一步在XML文件里新建
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第7张图片

   
        

第二步新建一个item
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第8张图片

Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第9张图片
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第10张图片
代码




    

    

第二步添加一个adapter(BaseAdapter是一个抽象类,所以需要重写这个抽象类方法)
在这里插入图片描述
全选然后ok
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第11张图片
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第12张图片
提示:当屏幕有几条就加载几条,下拉出现新的条目才会再加载(比for循环更加优化)
代码


public class MainActivity extends AppCompatActivity {


    ListView mListView;//实例化
    @Override
    protected void onCreate(Bundle savedInstanceState) {//准备工作   页面不可见,当执行完onStart的方法才可见
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mListView=findViewById(R.id.listview);
        mListView.setAdapter(new MyAdapter());//填充数据

    }
    public class MyAdapter extends BaseAdapter{//BaseAdapter是一个抽象类,所以需要重写这个抽象类方法
        @Override
        public int getCount() {//产生的条目的数量
            return 10;
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {//表示条目,相当于布局
            View view=View.inflate(MainActivity.this,R.layout.item,null);
            return view;
        }

    }

}

4.ListView填充数据案例

Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第13张图片
分析如下

  1. 构造数据
  2. 填充数据
  3. 获取条目数量大小
  4. 将填充的数据赋值给拿到的控件

Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第14张图片
代码


public class MainActivity extends AppCompatActivity {


    //构造数据结构
    List lists=new ArrayList<>();
    ListView mListView;//实例化
    @Override
    protected void onCreate(Bundle savedInstanceState) {//准备工作   页面不可见,当执行完onStart的方法才可见
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mListView=findViewById(R.id.listview);
        for (int i=0;i<66;i++){
            lists.add("这是第"+ i +"条数据");
        }
        mListView.setAdapter(new MyAdapter());//填充数据

    }
    public class MyAdapter extends BaseAdapter{//BaseAdapter是一个抽象类,所以需要重写这个抽象类方法
        @Override
        public int getCount() {//产生的条目的数量
            return lists.size();//获取lists的大小
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {//表示条目,相当于布局
            String s = lists.get(position);//获取条目的位置
            View view=View.inflate(MainActivity.this,R.layout.item,null);
            //拿到文本的引用(直接用findViewById只能拿到activity对应布局文件下的控件,所以要加一个view
            TextView textView=view.findViewById(R.id.textView2);
            textView.setText(s);
            return view;
        }

    }

}

5.ListView填充多个数据

第一步创建对象
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第15张图片
第二步填充与取值
Android 入门第四讲01-列表ListView(用代码添加布局文件(添加控件+布局),ListView原理,ListView使用步骤,ListView填充数据案例,ListView填充多个数据)_第16张图片
代码


public class MainActivity extends AppCompatActivity {
    //构造数据结构
    List lists=new ArrayList<>();
    ListView mListView;//实例化
    @Override
    protected void onCreate(Bundle savedInstanceState) {//准备工作   页面不可见,当执行完onStart的方法才可见
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mListView=findViewById(R.id.listview);
        for (int i=0;i<66;i++){
           Student student=new Student();
           student.name="高冷小王子"+i;
           student.sex="男"+i;
           student.age="18"+i;
           lists.add(student);
        }
        mListView.setAdapter(new MyAdapter());//填充数据
    }
    public class MyAdapter extends BaseAdapter{//BaseAdapter是一个抽象类,所以需要重写这个抽象类方法
        @Override
        public int getCount() {//产生的条目的数量
            return lists.size();//获取lists的大小
        }
        @Override
        public Object getItem(int position) { return null; }
        @Override
        public long getItemId(int position) { return 0; }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {//表示条目,相当于布局
            Student s = lists.get(position);//获取条目的位置
            View view=View.inflate(MainActivity.this,R.layout.item,null);
            //拿到文本的引用(直接用findViewById只能拿到activity对应布局文件下的控件,所以要加一个view
            TextView textView=view.findViewById(R.id.textView2);
            textView.setText(s.name);
            TextView textView1=view.findViewById(R.id.textView3);
            textView1.setText(s.sex);
            TextView textView2=view.findViewById(R.id.textView4);
            textView2.setText(s.age);
            return view;
        }

    }

}

嘿嘿嘿,本讲的内容就先讲到这里啦,谢谢您的阅读,下一讲更加精彩哦。
Android 入门第四讲02-列表ListView(ListView item高度问题,ListView控件缺点,ListView控件优化(面试常问问题),ListView控件二次优化)

你可能感兴趣的:(Android,入门(全))