AndroidのLayoutsに掲載されているList Viewの作り方を勉強する
今回は、単純にString型の文字を順番に表示する。
import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String[] data = {"Tokyo\nhoge\nbar", "Osaka", "Nagoya", "Sapporo"}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, data); ListView listView = (ListView) findViewById(R.id.container); listView.setAdapter(adapter); } /* .... */ }ここで、注意したい点は、android.R.layout.simple_list_item_1はデフォルトで用意されているlayoutなんですね。
てっきりxmlで自前で定義すると思っていたんだけど。
ここにはまってしまい、簡単なListを表示するのに、すんごい手こずってしまった。
後、今回は、単純なView上にListを表示しているだけないので問題はないのかもしれないが、本来であればsetContentViewメソッドのコールバックなりView設置完了後にListViewのadapterを呼ばないといけない気がするんだけどどうなんだろうか?
iOSのTableViewと違って動的に高さを変えてくれるので大変ありがたいんだけど、逆に固定化したい場合はどうすればいいのかまだわからない。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="true"> </ListView> </LinearLayout>android:background属性でListViewの背景色を変更することができる。
0 コメント:
コメントを投稿