• 自定义Adapter


    --MainActivity代码
      1 package com.example.qqdemo;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import android.os.Bundle;
      7 import android.app.Activity;
      8 import android.view.Gravity;
      9 import android.view.Menu;
     10 import android.view.View;
     11 import android.view.ViewGroup;
     12 import android.widget.BaseAdapter;
     13 import android.widget.ImageView;
     14 import android.widget.ListView;
     15 import android.widget.TextView;
     16 
     17 public class MainActivity extends Activity {
     18 
     19     private List<UserInfo> list = new ArrayList<UserInfo>();// 定义数据源
     20     private ListView mylistviwe;
     21 
     22     @Override
     23     protected void onCreate(Bundle savedInstanceState) {
     24         super.onCreate(savedInstanceState);
     25         setContentView(R.layout.activity_main);
     26         initlist();
     27         initview();
     28     }
     29 
     30     @Override
     31     public boolean onCreateOptionsMenu(Menu menu) {
     32         // Inflate the menu; this adds items to the action bar if it is present.
     33         getMenuInflater().inflate(R.menu.main, menu);
     34         return true;
     35     }
     36 
     37     private void initview() {
     38         mylistviwe = (ListView) findViewById(R.id.listview);
     39         mylistviwe.setAdapter(new Myadapter());//绑定适配器
     40     }
     41 
     42     /**
     43      * 2015-4-30 向数据源添加数据
     44      */
     45     private void initlist() {
     46 
     47         for (int i = 0; i < 20; i++) {
     48             UserInfo uif = new UserInfo();
     49             if (i % 2 == 0) {
     50                 uif.setImage(R.drawable.monkey );
     51                 uif.setMag("Hello");
     52                 uif.setFlag(true);
     53             } else {
     54                 uif.setImage(R.drawable.monkey1 );
     55                 uif.setMag("HI");
     56                 uif.setFlag(false);
     57             }
     58             list.add(uif);
     59         }
     60 
     61     }
     62 
     63     /**
     64      * 定义内部类 自定义适配器 实现数据绑定
     65      */
     66 
     67     private class Myadapter extends BaseAdapter {
     68 
     69         @Override
     70         public int getCount() {// 修改getCount()返回值为list的长度
     71 
     72             return list.size();// 返回数据的条数
     73         }
     74 
     75         @Override
     76         public Object getItem(int position) {// 修改getItem()list封装具体内容
     77 
     78             return list.get(position);// 获取item里面的内容
     79         }
     80 
     81         @Override
     82         public long getItemId(int position) { // 返回对应位置getItemId;
     83             // 返回对应位置getItemId;
     84 
     85             return position;// 返回item的位置
     86         }
     87 
     88         // 绑定数据getview->findviewbyid ->给控件添加数据
     89         @Override
     90         public View getView(int position, View convertView, ViewGroup parent) {
     91 
     92             // 手动生成View对象 查找XML中控件。
     93             // R.layout.item_xml-->找到XML控件
     94             // null-->是否把读取上来的view添加到容器当中
     95             View v = View.inflate(MainActivity.this, R.layout.item_xml, null);
     96             // 得到当先控件的ID
     97             ImageView leftimage = (ImageView) v.findViewById(R.id.leftimage);
     98             ImageView rigtimage = (ImageView) v.findViewById(R.id.rigtimage);
     99             TextView tvshow = (TextView) v.findViewById(R.id.mytextview);
    100             UserInfo muif = list.get(position);// 获取到item里面的内容
    101 
    102             // 将item添加到ListView中
    103             if (muif.isFlag()) {
    104                 rigtimage.setVisibility(View.GONE);
    105                 leftimage.setVisibility(View.VISIBLE);
    106                 leftimage.setImageResource(muif.getImage());
    107                 tvshow.setText(muif.getMag());
    108                 tvshow.setGravity(Gravity.LEFT);
    109 
    110             } else {
    111                 rigtimage.setVisibility(View.VISIBLE);
    112                 leftimage.setVisibility(View.GONE);
    113                 leftimage.setImageResource(muif.getImage());
    114                 tvsh
    115 
    116 
    117 
    118 
    119 ow.setText(muif.getMag());
    120                 tvshow.setGravity(Gravity.RIGHT);
    121 
    122             }
    123             return v;
    124         }
    125 
    126     }
    127 
    128 }
    
    
    
    
    
     1 package com.example.qqdemo;
     2 /**
     3  * 封装UserInfo对象
     4  * @author wenfei
     5  */
     6 public class UserInfo {
     7     private int image;
     8     private String mag;
     9     private boolean flag; 
    10     
    11     
    12     public int getImage() {
    13         return image;
    14     }
    15     public void setImage(int image) {
    16         this.image = image;
    17     }
    18     public String getMag() {
    19         return mag;
    20     }
    21     public void setMag(String mag) {
    22         this.mag = mag;
    23     }
    24     public boolean isFlag() {
    25         return flag;
    26     }
    27     public void setFlag(boolean flag) {
    28         this.flag = flag;
    29     }
    30     
    31     
    32 }


    --XML文件
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context=".MainActivity" >
     6 
     7     <ListView
     8         android:id="@+id/listview"
     9         android:layout_width="match_parent"
    10         android:layout_height="match_parent" />
    11 
    12 </LinearLayout>
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6     tools:context=".MainActivity" >
     7 
     8     <RelativeLayout
     9         android:layout_width="match_parent"
    10         android:layout_height="50dp" >
    11 
    12         <ImageView
    13             android:id="@+id/leftimage"
    14             android:layout_width="wrap_content"
    15             android:layout_height="wrap_content"
    16             android:layout_centerVertical="true"
    17             android:src="@drawable/monkey" />
    18 
    19         <TextView
    20             android:id="@+id/mytextview"
    21             android:layout_width="wrap_content"
    22             android:layout_height="wrap_content"
    23             android:layout_centerVertical="true"
    24             android:layout_toLeftOf="@+id/rigtimage"
    25             android:layout_toRightOf="@+id/leftimage"
    26             android:gravity="right"
    27             android:text="我来了" />
    28 
    29         <ImageView
    30             android:id="@+id/rigtimage"
    31             android:layout_width="wrap_content"
    32             android:layout_height="wrap_content"
    33             android:layout_alignParentRight="true"
    34             android:layout_centerVertical="true"
    35             android:src="@drawable/monkey1" />
    36     </RelativeLayout>
    37 
    38 </LinearLayout>
  • 相关阅读:
    eclipse最有用快捷键整理(转)
    Spring IOC的配置使用(转)
    char varchar varchar2 的区别 (转)
    BigDecimal用法详解(转)
    20160126--springaop
    20160125--Spring
    20150122--接口
    Servlet与JSP的区别
    练习
    151127
  • 原文地址:https://www.cnblogs.com/wenfei123chai/p/4468517.html
Copyright © 2020-2023  润新知