ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 画像とアイテムのリストを表示していく

改良型ListViewを作ります

Creating Custom ListViews

標準のListViewはアイテムのリストを単純に表示します。
一方、テキストのリストを表示したいだけなら十分かもしれません。
ですが、これだけではさらに洗練されたアプリケーションには
十分ではありません。
ここでは、画像、複数のテキストラインなどを
表示できるようにするために、どのようにListViewを改良するかを
示します。
使うアクティビティのListViewを表示するためには、
<ListView>要素をユーザインターフェースに加える必要があり、
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" >

  <ListView
   android:id="@+id/android:list"
   android:layour_width="fill_parent"
   android:layout_height="fill_parent" />
<RelativeLayout>

ListViewのそれぞれのアイテムの次の画像を表示するために、
res/layoutフォルダにあるXMLファイルに追加し、画像を名づけます。
例えば、lvrowlayout.xml。
lvrowlayout.xmlファイルを以下のように設定します。

<:LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal" >

  <ImageView
   android:id="@+id/icon"
   android:layout_width="50dp"
   android:layout_height="50dp"
   android:layout_marginBottom="5dp"
   android:layout_marginLeft="5dp"
   android:layout_marginRight="5dp"
   android:layout_marginTop="5dp"
   android:src="@drawable/ic_launcher" />

  TextView
   android:id="@+id/txtosName"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="20dp" />
<LinearLayout>

上のコードは、ListViewにあるそれぞれの行への
レイアウトするのに役立ちます。
それぞれの行はImageViewとTextViewを含んでいきます。
以下のようにMainActivity.javaファイルを修正します。


ちょっと注釈

この例は、ListActivityクラスをアクティビティへの
基底クラスとして使います。


package net.learn2develop.customlistview;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity{
  String[] os = {
          "Linux",
          "Free BSD",
          "OS_X",
          "Windows"
  };

  @Override
  public void onCreate(Bundle savedInstanceState){
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);

   this.setListAdapter(new ArrayAdapter<String>(
         this,
         R.layout.ivrowlayout,
         R.id.txtosName,
         os));

  }
}

前もって定義されたレイアウト型の1つを
使っていることに注目ください。
この場合、自身で定義させたレイアウトを使っています。

this.setListAdapter(new ArrayAdapter<String>(
  this,
  layout.lvrowlayout,
  layout.txtosName,
  os));

このコードを実行することで、それぞれの行に
アイコンがあることに気がつくでしょう。
しかし、どの行にあるアイコンも同じです。
もし、行ごとにアイコンを変えたければ、開発者のカスタムアダプタを
作る必要があります。この方法は、
追加のTextViewでそれぞれの行をさらに改良する
で紹介します。



ホーム
便利堂ロゴ
inserted by FC2 system