• 在Fragment中添加ListView


    在Fragment中,几个主要生命周期的创建过程

      onCreate 创造页面

      onCreateView 创造View

      onStart 开始

    三种获取LayoutInflater的方式

      

     LayoutInflater inflater=LayoutInflater.from(getContext());
    LayoutInflater inflater
    =getLayoutInflater();
    LayoutInflater localinflater
    =
            (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    其中的onCreate负责创建Fragment的View,必须要进行重写

    将页面的初始化放在onCreateView中

    示例代码:

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState)
        {
            Log.d("TAG","onCreateView");
            //创建界面MsgFragment
            contentView=inflater.inflate(R.layout.fragment_msg,container,false);
    
            //界面的初始化
            myListAdapter=new MyListAdapter();
            ListView listView=(ListView)contentView.findViewById(R.id.id_listview_msgfragment);
            listView.setAdapter(myListAdapter);
            return contentView;
    
        }

    重写方法onStart()

        @Override
        public void onStart() {
            Log.d("TAG","onStart");
            demo();
            super.onStart();
        }
        /////////////////////添加数据
        private void demo()
        {
            listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
            listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
            listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
            listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
            listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
        }

    MsgFragment.java

      1 package com.example.senior0302_test2;
      2 
      3 
      4 import android.os.Bundle;
      5 import android.support.annotation.Nullable;
      6 import android.support.v4.app.Fragment;
      7 import android.util.Log;
      8 import android.view.LayoutInflater;
      9 import android.view.View;
     10 import android.view.ViewGroup;
     11 import android.widget.BaseAdapter;
     12 import android.widget.ListView;
     13 import android.widget.TextView;
     14 
     15 import java.util.ArrayList;
     16 
     17 
     18 /**
     19  * A simple {@link Fragment} subclass.
     20  */
     21 public class MsgFragment extends Fragment {
     22 
     23     ArrayList<Con>listData=new ArrayList<>();
     24     MyListAdapter myListAdapter;
     25     View  contentView;
     26 
     27 
     28 
     29 
     30     public MsgFragment() {
     31 
     32     }
     33 
     34     @Override
     35     public void onStart() {
     36         Log.d("TAG","onStart");
     37         demo();
     38         super.onStart();
     39     }
     40     /////////////////////添加数据
     41     private void demo()
     42     {
     43         listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
     44         listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
     45         listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
     46         listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
     47         listData.add(new Con("日前,国家卫健委有关负责人表示,我国正采取多"));
     48     }
     49 
     50     @Override
     51     public void onCreate(@Nullable Bundle savedInstanceState) {
     52         Log.d("TAG","onCreate");
     53         super.onCreate(savedInstanceState);
     54     }
     55 
     56     @Override
     57     public View onCreateView(LayoutInflater inflater, ViewGroup container,
     58                              Bundle savedInstanceState)
     59     {
     60         Log.d("TAG","onCreateView");
     61         //创建界面MsgFragment
     62         contentView=inflater.inflate(R.layout.fragment_msg,container,false);
     63 
     64         //界面的初始化
     65         myListAdapter=new MyListAdapter();
     66         ListView listView=(ListView)contentView.findViewById(R.id.id_listview_msgfragment);
     67         listView.setAdapter(myListAdapter);
     68         return contentView;
     69 
     70     }
     71 
     72     /////////////////////该有的数据
     73     public class Con
     74     {
     75         public String content;
     76         public Con(String content)
     77         {
     78             this.content=content;
     79         }
     80     }
     81 /////////////////////适配器
     82     public class MyListAdapter extends BaseAdapter
     83     {
     84 
     85         @Override
     86         public int getCount() {
     87             return listData.size();
     88         }
     89 
     90         @Override
     91         public Object getItem(int position) {
     92             return listData.get(position);
     93         }
     94 
     95         @Override
     96         public long getItemId(int position) {
     97             return position;
     98         }
     99 
    100         @Override
    101         public View getView(int position, View converView, ViewGroup parent) {
    102 
    103             if(converView==null)
    104             {
    105                 converView=getLayoutInflater().inflate(R.layout.layout_fragment_msg,parent,false);
    106             }
    107             Con c= (Con) getItem(position);
    108             TextView textView=(TextView)converView.findViewById(R.id.id_textview_msgfragment);
    109             textView.setText(c.content);
    110 
    111             return converView;
    112         }
    113     }
    114 
    115 }
  • 相关阅读:
    五分钟小知识:为什么说 ++i 的效率比 i++ 高?
    TwoSum 相关问题思路总结
    普通互联网公司 vs 文艺互联网公司 vs 二逼互联网公司
    让美国人颤抖的 5G 技术,到底有多牛
    计算机专业的学生也太太太太太惨了吧?
    中秋分享几个有点意思的 GitHub 项目
    浅谈滴滴派单算法
    数组特性的妙用!如何找到「缺失的第一个正数」
    图解两数之和的变形题之「有效三角形的个数」
    我命由我不由天,5个月逆袭百度,头条AI岗位,来挑战吗?
  • 原文地址:https://www.cnblogs.com/Doaoao/p/9425126.html
Copyright © 2020-2023  润新知