文字列を画面上にリスト表示する方法
ソースコードは下記に配置しました。 SVN でダウンロードするのは下記です main.xml
main.xml は /res/layout/main.xml です。 <?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/ListView" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> 修正したの上記太字部分です。
MainActivity.java
package jp.caldroid.matsudroid.sample.listview; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { // ListView private ListView mListView = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // ListView を取得 mListView = (ListView) findViewById(R.id.ListView); // リスト用データ作成 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, createList() ); // リストにデータを設定 mListView.setAdapter(adapter); } /* * リスト作成 */ private List<String> createList() { ArrayList<String> list = new ArrayList<String>(); list.add("文字列1"); list.add("あかさたな"); list.add("こんにちわ"); list.add("明日"); list.add("横浜"); list.add("渋谷"); list.add("文字列2"); list.add("最後の文字列"); return list; } } リストビューに直接データを追加することはできません。 アダプタを作成して、データはアダプタに追加していきます。 なぜ、アダプタを作成するのか・・・・ リストビューの1行に表示するものを細かく制御するために、アダプタを継承したクラスを作ります。 今回のサンプルでは文字列だけを表示させるのでアダプタを継承せずにそのまま使いました。 1行に表示するビューは android.R.layout.simple_list_item_1 というレイアウトを使用しています。ListView のカスタマイズは後日・・・・ |