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 コメント:
コメントを投稿