--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>