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

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

いろんなListViewを表示していく

Displalying Multiple ListViews

ListViewを使ってアイテムのリストを表示すると、
ListViewを改良するでアクティビティの
1つのListViewを見ましたが、
アクティビティに複数のListViewはあるのが一般的です。
アクティビティに複数のListViewをどう含ませるかを示していきます。
アクティビティにある複数のListViewらを表示するためには、
単純に複数の<ListView>をユーザインターフェースに加えます。
以下のようなactivity_main.xmlファイルの様になります。

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

<TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="List 1" />

<ListView
  android:id="@+id/ListView1"
  android="layout_width="fill_parent"
  android="layout_height="200dp" />


<TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="List 2" />

<ListView
  android:id="@+id/ListView2"
  android:layout_widht="fill_parent"
  android:layout_height="200dp" />
<LinearLayout>

上のコードは2つのListViewを含んでいます。
それらのListViewは各々idを持っています。
"@+id/ListView 1"と"@+id/ListView 2"がそうです。
アイテムでそれぞれのListViewを埋めるためには、
findViewById()メソッドを使ってListViewの参照を
得ることが必要です。
findViewById()メソッドでListViewの参照が終わってしまえば、
ListViewをArrayAdapterオブジェクトへバインドできます。

package net.learn2develop.listview2;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity{
  ListView l1, l2;
  String[] os = {
        "Linux",
        "Free BSD",
        "OS_X",
        "Windows"
  }

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

   ArrayAdapter<String> adapter = new ArrayAdapter<String>(
       this, android.R.layout.simple_list_item_1, os);

   //---List View---
   l1 = (ListView) findViewById(R.id.ListView1);
   l1.setAdapter(adapter);
   l1.setOnItemClickListener(new OnTtemClickListenert(){
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
         long arg3){
     int index = arg2;
     Toast.makeText(getBaseContext(),
      "You have selected item :" + os[index],
      Toast.LENGTH_SHORT).show();
    }
   });

   //---List View---
   l2 = (ListView) findViewById(R.id.ListView2);
   l2.setAdapter(adapter);
   l2.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
         long arg3) {
     int index = arg2;
     Toast.makeText(getBaseContext(),
      "You have selected item : " + os[index],
      Toast.LENGTH_SHORT).show();
    }
   });
  }
}

ListViewの内部アイテムの選択を処理するためには、
OnItemClickListenerクラスのインスタンスにアイテムを
割り当てるために、setOnItemClickListener()メソッドを呼び出し、
onItemClick()メソッドを再定義する必要があります。



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