ListViewのメモ

Google Android アプリケーション開発入門」を読みつつ
Androidのアプリケーションを作る練習を地味に続けてます.

ListViewのサンプルを作ってみたところで,本の通りには行かなかったところをメモ.

サンプルは,EditTextに入力したテキストをListViewに反映させるという至ってシンプルな物.

setListAdapter()が見つからない*1ので,
ListViewにあるArrayAdapterをセットするsetAdapter()メソッドで書き換えることにしてみました.

どの本でもバージョン違いを吸収できていなかったり,説明不足であったりと
一つ一つのサンプル書くにも時間がかかる...といった印象です.
# その分,細かく調べられているとも言う.

例)*2

public class ListViewSample extends Activity {
    // ListViewのデータを保持するAdapter
    ArrayAdapter<String> mAdapter;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // このへんはお決まりで
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // adapterにlist_row.xmlというTextViewを定義したxmlをセット
        mAdapter = new ArrayAdapter<String>(
                getApplicationContext(),
                R.layout.list_row,
                new ArrayList<String>()
        );
        
        // これはメソッドがないみたい.
        // setListAdapter(mAdapter);
        // 上記の代わり
        // ListViewを呼んでAdapterをセット.
        ListView listView = (ListView)findViewById(R.id.list_view);
        listView.setAdapter(mAdapter);

        // ボタンの振る舞いを登録
        Button add_button = (Button)findViewById(R.id.add_button);
        add_button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                addStringData();
            }
        });
    }
    
    // ボタンクリック時のメソッド
    private void addStringData() {

        EditText edit = (EditText)findViewById(R.id.edit_text);
        // 入力したテキストをAdapter経由でListViewに渡す.
        mAdapter.add(edit.getText().toString());
    }
}

Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容

Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容

*1:http://stackoverflow.com/questions/982725/android-where-is-setlistadapter

*2:普段はプログラムを翻訳するようなコメントは付けないけど,メモを兼ねて書いておきます.