zoukankan      html  css  js  c++  java
  • View(视图)——ListView之BaseAdapter和SimpleCursorAdapter以及网格视图代码视图

    一.BaseAdapter

       1.数据源  List<Object>

          一般是放实体类、POJO类,一般只包含私有属性和属性的getter和setter方法。

       2.layout:可以用布局,包含多个视图。

       3.抽象类:必须要继承并实现4个抽象方法

         1-int getCount()  返回数据源的记录数

         2-Object getItem(int position) 返回索引对应的数据对象

         3-long getItemId(int position)  返回索引对应的数据对象的ID

         4-View getView(int position, View convertView, ViewGroup parent) 实现数据与视图的适配,返回装载了数据的视图,convertView 表示可复用的视图。

    二.SimpleCursorAdapter

        数据源:数据库的查询结果集Cursor(游标)。

    三.GridView网格视图:带格子的ListView

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.example.wang.testapp2.TestActivity10">
    11 
    12     <GridView
    13         android:layout_width="match_parent"
    14         android:layout_height="match_parent"
    15         android:id="@+id/gv_1"
    16         android:numColumns="4"
    17         android:stretchMode="columnWidth"
    18         android:gravity="center"
    19         android:horizontalSpacing="30dp"
    20         ></GridView>
    21 
    22 </LinearLayout>
    ,xml
     1 package com.example.wang.testapp2;
     2 
     3 import android.app.ActionBar;
     4 import android.support.v7.app.AppCompatActivity;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.view.ViewGroup;
     8 import android.widget.AbsListView;
     9 import android.widget.BaseAdapter;
    10 import android.widget.GridView;
    11 import android.widget.ImageView;
    12 
    13 import java.util.ArrayList;
    14 import java.util.List;
    15 
    16 public class TestActivity10 extends AppCompatActivity {
    17 
    18     GridView gv_1;
    19 
    20     List<Integer> liv;
    21 
    22     @Override
    23     protected void onCreate(Bundle savedInstanceState) {
    24         super.onCreate(savedInstanceState);
    25         setContentView(R.layout.activity_test10);
    26 
    27         GridView gv_1=(GridView)findViewById(R.id.gv_1);
    28 
    29         //1 数据 图片的id
    30         liv =new ArrayList<>();
    31         liv.add(R.drawable.f1);
    32         liv.add(R.drawable.f2);
    33         liv.add(R.drawable.f3);
    34         liv.add(R.drawable.f4);
    35         liv.add(R.drawable.f5);
    36         liv.add(R.drawable.f6);
    37         liv.add(R.drawable.f7);
    38         liv.add(R.drawable.f8);
    39         liv.add(R.drawable.f9);
    40         liv.add(R.drawable.f10);
    41 
    42         gv_1.setAdapter(new ImageAdapter());
    43 
    44     }
    45 
    46     // 适配器
    47 
    48     class  ImageAdapter extends BaseAdapter
    49     {
    50         @Override
    51         public int getCount() {
    52             return liv.size();
    53         }
    54 
    55         @Override
    56         public Object getItem(int position) {
    57             return liv.get(position);
    58         }
    59 
    60         @Override
    61         public long getItemId(int position) {
    62             return 0;
    63         }
    64 
    65         @Override
    66         public View getView(int position, View convertView, ViewGroup parent) {
    67 
    68             //1. 得到数据 图片的id
    69             Integer ivid=liv.get(position);
    70 
    71             //2.准备View
    72             if (convertView==null)
    73             {
    74                 convertView = new ImageView(TestActivity10.this);
    75             }
    76 
    77             //3.适配
    78             // 转换
    79             ImageView imageView=(ImageView)convertView;
    80 
    81             imageView.setImageResource(ivid);
    82 
    83 //            imageView.setMaxWidth(70);
    84 //            imageView.setMaxHeight(70);
    85 
    86             imageView.setLayoutParams(new GridView.LayoutParams(110,110));
    87 
    88 
    89             return imageView;
    90         }
    91     }
    92 }
    .java

  • 相关阅读:
    寒假学习日报29
    寒假学习日报28
    保证多个线程顺序执行
    switchHost本地映射
    Redis 淘汰策略解读
    再过半小时,你就能明白kafka的工作原理了
    Zookeeper用来做什么的,有几种类型的节点
    类加载过程
    REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    数据库的锁机制及原理
  • 原文地址:https://www.cnblogs.com/arxk/p/5513819.html
Copyright © 2011-2022 走看看