アフィリエイト広告を利用しています

広告

posted by fanblog

2015年09月27日

【Android】findViewByIdをonCreateの外で書いたときのNull Pointer Exception【エラー】

以下のようなプログラムを書いてみます。


MainActivity.java

public class MainActivity extends Activity {
EditText editText = (EditText)findViewById(R.id.editText);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}
・・・



activity_main.xml








上記のプログラムはNull Pointer Exceptionとなります。


EditText editText = (EditText)findViewById(R.id.editText);
を上記の位置に書いてしまうとEditTextが記述されたactvity_main.xmlがsetContextView()されるまえに呼び出されることになります。
そのためfindViewByIdで指定されたidを見つけることができずNull Pointer Exceptionとなってしまいます。
すなわちfindViewByIdはsetContextView()よりあとに記述しなければなりません。


MainActivity.java

public class MainActivity extends Activity {
EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText)findViewById(R.id.editText);
}
・・・


これで正しく動作します。


posted by いおり at 20:13| Comment(0) | TrackBack(0) | Android
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/4225065
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索
リンク集
最新記事
カテゴリーアーカイブ
タグクラウド
<< 2017年05月 >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
ファン
最新コメント
最新トラックバック
写真ギャラリー
日別アーカイブ
プロフィール
いおりさんの画像
いおり
×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: