新浪实例

来源:互联网 发布:sap数据分析 编辑:程序博客网 时间:2024/05/12 02:33

文件1:PersonAdapter.java:
package com.example.adapter;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.javabean.Person;
import com.example.xinlong.R;

public class PersonAdapter extends ArrayAdapter { 
 int resourceId;
 public PersonAdapter(Context context, int textViewResourceId, List<Person> data) {
  super(context, textViewResourceId, data);
  // TODO Auto-generated constructor stub
  resourceId=textViewResourceId;
 }
 public View getView(int position,View convertView,ViewGroup parent){
  //1.得到当前的数据(已封装成对象person)
  Person person=(Person)getItem(position);
  View view;
  ViewHolder viewHolder;
  //2.将子布局压进为view,并将子布局所有控件抽象成的类实例化(即定位控件)
  //2.1.初次的情形
  if(convertView==null){
   //2.1.1.将子布局压进为view,并已经存入缓存convertview中
   view=LayoutInflater.from(getContext()).inflate(resourceId, null);
   //2.1.2.1.将子布局所有控件抽象成的类实例化(即定位控件)
   viewHolder=new ViewHolder();
   viewHolder.personImage=(ImageView) view.findViewById(R.id.ivIcon);
   viewHolder.personName=(TextView)view.findViewById(R.id.tvtvTitle);
   viewHolder.personText=(TextView)view.findViewById(R.id.tvContent);
   //2.1.2.2.将上步的控件的定位存入view
   view.setTag(viewHolder);
  }
  //2.2.初次以外的情形
  else{
   //2.2.1从缓存中取出view(子布局在之前压进成的view)
   view=convertView;
   //2.2.2从view中取出在之前实例化好的convertView(找到控件)
   viewHolder=(ViewHolder)view.getTag();
  }
  //3.将上步找到的控件设置内容
  viewHolder.personImage.setImageResource(person.getImgId());
  viewHolder.personName.setText(person.getString1());
  viewHolder.personText.setText(person.getString2());
  return view;  
 }
 class ViewHolder{
  ImageView personImage;
  TextView personName;
  TextView personText;
 }
}
文件2:Person.java:
package com.example.javabean;

public class Person {
 int imgId;
 String string1;
 String string2;
 public Person(int imgId, String string1, String string2) {
  super();
  this.imgId = imgId;
  this.string1 = string1;
  this.string2 = string2;
 }
 public int getImgId() {
  return imgId;
 }
 public void setImgId(int imgId) {
  this.imgId = imgId;
 }
 public String getString1() {
  return string1;
 }
 public void setString1(String string1) {
  this.string1 = string1;
 }
 public String getString2() {
  return string2;
 }
 public void setString2(String string2) {
  this.string2 = string2;
 }
 
}
文件3:MainActivity.java:
package com.example.xinlong;

import java.util.ArrayList;
import java.util.List;

import com.example.adapter.PersonAdapter;
import com.example.javabean.Person;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ListView;

public class MainActivity extends Activity {
 ListView listView;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //1.准备数据
  List list=new ArrayList();
  Person person=new Person(R.drawable.ic_launcher,"吉洋洋","今天太开心了");
  //person.setImgId(R.drawable.ic_launcher);
  //person.setString1("吉洋洋");
  //person.setString2("今天太开心了");
  list.add(person);
  //2.找到控件
  listView=(ListView) findViewById(R.id.listView1);
  //3.创建适配器
  PersonAdapter adapter=new PersonAdapter(this,R.layout.zilayout,list);
  //4.将控件绑定适配器
  listView.setAdapter(adapter);
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}
文件4:activity_main.xml:
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

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

</RelativeLayout>
文件5:zilayout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/ivIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="14dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/tvtvTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/ivIcon"
        android:layout_marginLeft="31dp"
        android:layout_toRightOf="@+id/ivIcon"
        android:text="TextView" />

    <TextView
        android:id="@+id/tvContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/ivIcon"
        android:layout_alignLeft="@+id/tvtvTitle"
        android:text="TextView" />

</RelativeLayout>

0 0
原创粉丝点击