android ListVewのシンプルな実装と行タップ

スマホアプリではおなじみのListViewをつかってみます。
1行の中に画像など複数のアイテムを入れたりとかするとちょっとひとひねりいるのですが、単一のテキストをシンプルにただリスト表示するだけならな簡単に実装できます。

まずはxmlファイルで、ListViewを配置します。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<ListView  

	android:id="@+id/my_listview"

    android:layout_width="fill_parent" 

    android:layout_height="fill_parent" 

    android:text="@string/hello"

    />

</LinearLayout>

ソースコード
クリック処理するとメッセージダイアログを表示しています。
クリックイベントを実装するために インターフェースの実装implements OnItemClickListener を記述します。



import android.app.Activity;

import android.app.AlertDialog;

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.content.DialogInterface;

import android.content.Intent;

public class ListActivity extends Activity implements OnItemClickListener  {

    /** Called when the activity is first created. */

	private ListView listView=null;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.list_activity);

        listView=(ListView)findViewById(R.id.my_listview);

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

        //要素を追加

        for (int i=0;i<100;i++){

        	arrayAdapter.add(Integer.toString(i));

        }

        //アダプタを設定

        listView.setAdapter(arrayAdapter);

        listView.setOnItemClickListener(this);

    }

	private static void showDialog(final Activity activity,String title,String text){

    	AlertDialog.Builder ad=new AlertDialog.Builder(activity);

    	ad.setTitle(title);

    	ad.setMessage(text);

    	ad.setPositiveButton("OK",new DialogInterface.OnClickListener(){

    		public void onClick(DialogInterface dialog,int whichButton){

    			activity.setResult(Activity.RESULT_OK);
    		}

    	});

    	ad.create();

    	ad.show();

    }

	@Override

	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

		// TODO 自動生成されたメソッド・スタブ

		String select_str = (String)arg0.getItemAtPosition(arg2);

		 Intent showIntent = new Intent( this,  Wgamen.class);

		 showDialog(this,"タイトル",select_str+"番目がタップされました。");

	}

}

カテゴリー: Android パーマリンク