文档章节

android适配器持有者模式

 易水寒521
发布于 2015/05/07 16:06
字数 677
阅读 5
收藏 0

fragment:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#00FF00">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="聊天"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

items:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="sss"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="jjj"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

</LinearLayout>

 

package com.jxc.fragment;

import com.jxc.homeandschool.R;

import android.os.Bundle;
import android.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class Fragment2 extends Fragment {
 
 private View view;
 int x=0;
 int max=50;
 ListView list;

// String[] str1 = { "第一个", "第二个", "第三个", "第四个", "第五个" };
// String[] str2 = { "第一个", "第二个", "第三个", "第四个", "第五个" };
 String[] str1=new String[max];
 String[] str2=new String[max];
 
 int[] i = { R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, R.drawable.ic_launcher,
   R.drawable.ic_launcher, };

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  view = inflater.inflate(R.layout.fragment2, null);
  init();

  
  
  list.setAdapter(new MyAdapter());
  return view;
 }

 private void init() {
  
  list = (ListView) view.findViewById(R.id.listView1);
  

  for(x=0;x<max;x++){
   
   System.out.println("x----"+x);
   str1[x]="聊天"+x;
   System.out.println("str1[x]----"+x);
   
   str2[x]="聊天"+x;
   System.out.println("hai----hai");
  }
 }

 
 
 public class MyAdapter extends BaseAdapter {

  @Override
  public int getCount() {
   // TODO 自动生成的方法存根
   return str1.length;
  }

  @Override
  public Object getItem(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public long getItemId(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public View getView(int arg0, View convertView , ViewGroup arg2) {
   ViewHolder holder=null;
   if(convertView ==null){
    convertView =getActivity().getLayoutInflater().inflate(R.layout.items, null);
    holder=new ViewHolder(convertView);
//    holder.im = (ImageView) convertView.findViewById(R.id.imageView1);
//    holder.tv = (TextView) convertView.findViewById(R.id.textView1);
    
    convertView.setTag(holder);
   }else{
    holder=(ViewHolder) convertView.getTag();
   }
   
  
    holder.tv1.setText(str1[arg0]);
    holder.tv2.setText(str2[arg0]);
   
   
   
   return convertView ;
  }
 }
 class ViewHolder{
  ImageView im;
  TextView tv1,tv2;
  
  ViewHolder(View v){
   im = (ImageView) v.findViewById(R.id.imageView1);
   tv1 = (TextView) v.findViewById(R.id.textView1);
   tv2 = (TextView) v.findViewById(R.id.textView2);
  }
 }
}

 

package com.jxc.fragment;

import com.jxc.fragment.Fragment2.MyAdapter;
import com.jxc.fragment.Fragment2.ViewHolder;
import com.jxc.homeandschool.R;

import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class Fragment3 extends Fragment {
 private View view;
 int x=0;
 int max=100;
 ListView list;

 String[] str1=new String[max];
 String[] str2=new String[max];
 
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {
  view = inflater.inflate(R.layout.fragment3, null);
  init();

  
  
  list.setAdapter(new MyAdapter());
  return view;
 }
private void init() {
  
  list = (ListView) view.findViewById(R.id.listView1);
  

  for(x=0;x<max;x++){
   
   System.out.println("x----"+x);
   str1[x]="设置"+x;
   System.out.println("str1[x]----"+x);
   
   str2[x]="设置"+x;
   System.out.println("hai----hai");
  }
 }

 
 
 public class MyAdapter extends BaseAdapter {

  @Override
  public int getCount() {
   // TODO 自动生成的方法存根
   return str1.length;
  }

  @Override
  public Object getItem(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public long getItemId(int arg0) {
   // TODO 自动生成的方法存根
   return arg0;
  }

  @Override
  public View getView(int arg0, View convertView , ViewGroup arg2) {
   ViewHolder holder=null;
   if(convertView ==null){
    convertView =getActivity().getLayoutInflater().inflate(R.layout.items, null);
    holder=new ViewHolder(convertView);
//    holder.im = (ImageView) convertView.findViewById(R.id.imageView1);
//    holder.tv = (TextView) convertView.findViewById(R.id.textView1);
    
    convertView.setTag(holder);
   }else{
    holder=(ViewHolder) convertView.getTag();
   }
   
  
    holder.tv1.setText(str1[arg0]);
    holder.tv2.setText(str2[arg0]);
   
   
   
   return convertView ;
  }
 }
 class ViewHolder{
  ImageView im;
  TextView tv1,tv2;
  
  ViewHolder(View v){
   im = (ImageView) v.findViewById(R.id.imageView1);
   tv1 = (TextView) v.findViewById(R.id.textView1);
   tv2 = (TextView) v.findViewById(R.id.textView2);
  }
 }
}

© 著作权归作者所有

上一篇: json
下一篇: 登陆
粉丝 0
博文 130
码字总数 120077
作品 0
虹口
私信 提问
Kotlin入门(23)适配器的进阶表达

前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象...

aqi00
2018/10/09
0
0
Android的设计模式-适配器模式

前言 Android的设计模式系列文章介绍,欢迎关注,持续更新中: Android的设计模式-设计模式的六大原则 创建型模式: Android的设计模式-单例模式 Android的设计模式-建造者模式 Android的设计...

四月葡萄
2018/01/02
0
0
北京高薪诚聘:(android/ios)手机游戏开发工程师、软件开发工程师!8k-20k!

我们招聘的职位都可以选择在北京和上海办公,欢迎北京、上海的优秀工程师投递简历!实习生亦招! 公司简介: 北京博闻强识科技有限公司是一家新成立的移动互联网创业型公司,其致力于为用户提...

博闻强识
2012/05/29
682
4
Android app应用性能优化

一、名词解释 内存溢出 实质应用程序不能及时释放内存或者加载到内存上的数据太大而导致的OOM问题 内存泄漏 目标类被其他类持有、导致无法销毁、从而导致目标类无法被调用也无法销毁。 窗体(...

IamOkay
2014/11/03
0
0
一起学Android之ListView

本文以一个小例子,简述Android开发中ListView的相关应用,仅供学习分享使用。 概述 ListView是一个显示可滚动项目列表的视图组(view group),列表项通过适配器(Adapter)将数组或者数据库...

Alan.hsiang
01/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
18分钟前
0
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
42分钟前
1
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
3
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
5
0
高德API入门教程

项目需求 1、实现打开地图就能定位到中心显示标注点 2、点击标注显示保利可爱岛的详细信息 3、实现导航功能 <!doctype html><html><head> <meta charset="utf-8"> <meta http-......

我叫小糖主
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部