スポンサーリンク

Android SDK の動かないコード(中級編) ListView内の要素にアクセスしようとするとNullPointerExceptionで落ちるエラー


以下のAndroidアプリのコードが意図した動作をしないのは,なぜですか。
(制限時間1分)


やりたい事:

  • リストビューを表示し,その先頭の要素にフォーカスする。


アクティビティ側のコード:

package com.example.activity.hoge;

import com.example.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class CodeTestActivity extends Activity {

    // リスト
    private ListView lv = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // 列挙したい項目
        String[] items_for_lv = {
            "A",
            "B",
            "C"
        };

        // 組み込み済みの行レイアウトを使ってアダプタを生成
        ArrayAdapter<String> adapter_for_lv = new ArrayAdapter<String>(
            this,
            android.R.layout.simple_list_item_1,
            items_for_lv
        );

        // リストにアダプタをセット
        lv = (ListView)findViewById(R.id.listview1);
        lv.setAdapter(adapter_for_lv);

        // リストの先頭要素にフォーカス
        View tr_view = lv.getChildAt(0);
        tr_view.requestFocus();
    }
}

なおレイアウトのmain.xmlには,listview1 というidのListViewが記述されている。

続きを読む