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が記述されている。
続きを読む