本周主要了解一些布局的优化内容,而其中比重较大的一块是ListView

ListView

  • ListView是Android软件开发中非常重要组件之一,基本上是个APP基本都会使用ListView,ListView不得不说Adapter适配器,只有通过Adapter才可以把列表中的数据映射ListView中。

主要实现代码

  • MainActivity中

       public class MainActivity extends AppCompatActivity {
       private List<ListInfos> mListInfos;
       private ListView mWeixinListView;
    
       @Override
       protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);
    
           mWeixinListView = (ListView) findViewById(R.id.list_view);
           mListInfos = new ArrayList<>();
           mListInfos.add(new ListInfos("去评分", 1));
           mListInfos.add(new ListInfos("功能介绍", 2));
           mListInfos.add(new ListInfos("系统通知", 3));
           mListInfos.add(new ListInfos("帮助与反馈", 4));
           mListInfos.add(new ListInfos("举报与投诉", 5));
           mListInfos.add(new ListInfos("检查新版本", 6));
           
           WeixinAdapter weixinAdapter = new WeixinAdapter(MainActivity.this, mListInfos);
           mWeixinListView.setAdapter(weixinAdapter);
       }

    }

  • ListInfos中设置传入listview中的内容

       public class ListInfos implements Serializable {
       private String mItem;
       private int mNum;
    
       public ListInfos(String item, int num){
           mItem = item;
           mNum = num;
       }
    
       public String getItem() {
           return mItem;
       }
    
       public void setItem(String item) {
           mItem = item;
       }
    
       public int getNum() {
           return mNum;
       }
    
       public void setNum(int num) {
           this.mNum = num;
       }
    

    }

  • Adapter中设置adapter的相关内容,此处代码最好自己敲熟练了,以后会经常用到

       public class WeixinAdapter extends BaseAdapter{
       private Context mContext;
    
       private LayoutInflater mLayoutInflater;
       //LayoutInflater是用于解析布局
    
       private List<ListInfos> mListInfos;
    
       public WeixinAdapter(Context context, List<ListInfos> ListInfos){
           mContext = context;
           mListInfos =  ListInfos;
           mLayoutInflater= (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       }
    
       @Override
       public int getCount() {
       //有多少数据
           return mListInfos.size();
       }
    
       @Override
       public Object getItem(int position) {
       //返回某一条数据对象
           return mListInfos.get(position);
       }
    
       @Override
       public long getItemId(int position) {
       //数据位置
           return position;
       }
    
       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
           // 将xml读取返回一个视图
           convertView = mLayoutInflater.inflate(R.layout.weixin_listview,null);
           // 从返回的convertView视图中获取控件
           TextView itemTextView = (TextView) convertView.findViewById(R.id.item_text_view);
           // 将控件和数据之间进行绑定
           itemTextView.setText(mListInfos.get(position).getItem());
    
           return convertView;
       }

    }

  • activity_main.xml中设置listview所在布局页面的大致格式

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout      xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="@color/gray"
       tools:context="com.geekband.myapplication_weixin_listview.MainActivity">
    
       <ImageView
           android:src="@drawable/weixin"
           android:layout_width="wrap_content"
           android:layout_height="80dp"
           android:id="@+id/image"
           />
       <TextView
           android:id="@+id/version"
           android:text="微信6.3.13"
           android:layout_width="wrap_content"
           android:layout_height="18dp"
           android:layout_below="@+id/image"
           android:layout_centerHorizontal="true"/>
       <ListView
           android:layout_below="@+id/version"
           android:layout_marginTop="30dp"
           android:id="@+id/list_view"
           android:background="@color/white"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           />
       <TextView
           android:layout_width="wrap_content"
           android:layout_height="30dp"
           android:layout_centerHorizontal="true"
           android:id="@+id/d1"
           android:textSize="13dp"
           android:textColor="@color/colorPrimary"
           android:text="使用条款和隐私政策"
           android:layout_above="@+id/d2"
           />
       <TextView
           android:layout_above="@+id/d3"
           android:layout_width="wrap_content"
           android:layout_height="15dp"
           android:layout_centerHorizontal="true"
           android:textSize="10dp"
           android:text="腾讯公司 版权所有"
           android:id="@+id/d2"
           />
       <TextView
           android:layout_above="@+id/d4"
           android:layout_width="wrap_content"
           android:layout_height="15dp"
           android:layout_centerHorizontal="true"
           android:textSize="10dp"
           android:text="Copyright©2011-2015 Tencent"
           android:id="@+id/d3"
           />
       <TextView
    
           android:layout_width="wrap_content"
           android:layout_height="15dp"
           android:textSize="10dp"
           android:text="All Rights Reserved"
           android:layout_centerHorizontal="true"
           android:id="@+id/d4"
           android:layout_alignParentBottom="true"
           android:layout_marginBottom="10dp"
           />
       </RelativeLayout>
    
  • listview.xml中设置在listview视图内显示的textview的格式

       <?xml version="1.0" encoding="utf-8"?>
       <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical" android:layout_width="match_parent"
       android:layout_height="match_parent">
    
       <TextView
           android:id="@+id/item_text_view"
           android:layout_width="match_parent"
           android:layout_height="40dp"
           android:textSize="15dp"
           android:textColor="@color/black"
           android:layout_marginLeft="16dp"
           android:gravity="center_vertical"
           />
       </RelativeLayout>
    
  • listview显示效果

listview1.PNG

  • 另外在学习中遇到的一些问题也记录在此账号的笔记当中,有兴趣的可以去看看

    上文均为个人观点,欢迎大家讨论交流
    作者:[你连野区的一条狗都不如]
    作者邮箱:[614475386@qq.com]
    作者微博(从不更新):[900lee@sina.cn]
    关于转载:欢迎转载,但必须在文章中给出原文连接。

instein
6 声望0 粉丝

野区一条狗