カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

画像付のリスト表示

この記事は最終更新日から1年以上経過しています。

【Listactivity.java】

1public class ListActivity extends Activity {
2 
3  @Override
4  public void onCreate(Bundle savedInstanceState) {
5    super.onCreate(savedInstanceState);
6    setContentView(R.layout.main);
7 
8    // データの作成
9    List<CustomData> objects = new ArrayList<CustomData>();
10 
11    Bitmap image;
12    image = BitmapFactory.decodeFile(getResources(), R.drawable.ic_lancher);
13 
14    CustomData item = new CustomData();
15 
16    item.setImage(image);
17 
18    for ( int i = 1; i <= 3; i++ ) {
19      item.setId(i);
20      item.setNumber(String.valueOf(i));
21      objects.add(item);
22    }
23 
24    CustomAdapter customAdapter = new CustomAdapter(this, 0, objects);
25    ListView listView = (ListView)findViewById(R.id.list);
26    listView.setAdapter(customAdapter);
27  }
28 
29}
30 
31class CustomAdapter extends ArrayAdapter<CustomData> {
32  private LayoutInflater layoutInflater_;
33 
34  public CustomAdapter(Context context, int textViewResourceId, List<CustomData> objects) {
35    super(context, textViewResourceId, objects);
36    layoutInflater_ = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
37  }
38 
39  @Override
40  public View getView(int position, View convertView, ViewGroup parent) {
41    // 特定の行(position)のデータを得る
42    CustomData item = (CustomData)getItem(position);
43    // convertViewは使い回しされている可能性があるのでnullの時だけ新しく作る
44    if (null == convertView) {
45      convertView = layoutInflater_.inflate(R.layout.list_item, null);
46    }
47 
48    // CustomDataのデータをViewの各Widgetにセットする
49    ImageView imageView;
50    imageView = (ImageView)convertView.findViewById(R.id.imageView1);
51    imageView.setImageBitmap(item.getImage());
52 
53    TextView textView;
54    textView = (TextView)convertView.findViewById(R.id._id);
55    textView.setText(String.valueOf(item.getId()));
56 
57    TextView textView2;
58    textView2 = (TextView)convertView.findViewById(R.id.number);
59    textView2.setText(item.getNumber());
60 
61    return convertView;
62  }
63}
64 
65class CustomData {
66  private Bitmap image_;
67  private int id_;
68  private String number_;
69 
70  public void setImage(Bitmap image) {
71    image_ = image;
72  }
73  public Bitmap getImage() {
74    return image_;
75  }
76 
77  public void setId(int id) {
78    id_ = id;
79  }
80  public int getId() {
81    return id_;
82  }
83 
84  public void setNumber(String number) {
85    number_ = number;
86  }
87  public String getNumber() {
88    return number_;
89  }
90}


【main.xml】

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3  android:layout_width="fill_parent"
4  android:layout_height="fill_parent"
5  android:orientation="vertical" >
6 
7  <ListView
8    android:id="@+id/list"
9    android:layout_width="fill_parent"
10    android:layout_height="fill_parent" />
11 
12</LinearLayout>

【list_item.xml】

1<?xml version="1.0" encoding="utf-8"?>
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3  android:layout_width="fill_parent"
4  android:layout_height="fill_parent"
5  android:orientation="horizontal"
6  android:padding="8px" >
7 
8  <ImageView
9    android:id="@+id/imageView1"
10    android:layout_width="80sp"
11    android:layout_height="50sp" />
12 
13  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
14    android:layout_width="fill_parent"
15    android:layout_height="wrap_content"
16    android:orientation="vertical"
17    android:layout_marginLeft="6px" >
18 
19    <TextView
20      android:id="@+id/_id"
21      android:layout_width="fill_parent"
22      android:layout_height="wrap_content"
23      android:textSize="15sp" />
24 
25    <TextView
26      android:id="@+id/number"
27      android:layout_width="fill_parent"
28      android:layout_height="wrap_content"
29      android:textSize="15sp" />
30 
31  </LinearLayout>
32 
33</LinearLayout>

ListView関連で参考にさせていただいたURL
http://techbooster.jpn.org/andriod/ui/1282/
http://lablog.lanche.jp/archives/220
http://slumbers99.blogspot.com/2011/08/android-listview.html
http://labs.techfirm.co.jp/android/cho/751
http://d.hatena.ne.jp/tomstay/20110421/1303391426
http://www.adakoda.com/android/000077.html

この記事がお役に立ちましたらシェアお願いします
4,398 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です