2016-07-12 10 views
-1

私のコードは次のとおりです。にNullPointer例外警告リストビューにアダプタを設定する際、次のように

public class EventActivity extends AppCompatActivity { 
     ListView listView; 
     ItemAdapter adapter; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.attaction_list); 

      ArrayList<Item> items = new ArrayList<>(); 
      items.add(new Item("a", "a", a)); 
      items.add(new Item("b", "b", b)); 
      items.add(new Item("c", "c", c)); 

      adapter = new ItemAdapter(this, items, R.color.event); 
      listView = (ListView) findViewById(R.id.list); 
      if(adapter != null) { 
       listView.setAdapter(adapter); 
      } 
     } 
    } 

Andoid StudioのエディタはlistView.setAdapter(adapter)は、nullポインタ例外を引き起こす可能性があることを示しています。誰がその警告がどこから来て、どのように修正するのか説明できますか?あなたがで開発者の文書を見れば

+0

ItemAdapterクラスはArrayAdapterを拡張して、私のカスタマイズされたアダプタクラスです。 –

+0

ItemAdapterとXMLレイアウトattaction_listを表示できますか? –

+0

[ボタンがnullポインタ例外を生成する可能性があります(Androidスタジオ)](http://stackoverflow.com/questions/36204297/button-may-produce-null-pointer-exception-android-studio) –

答えて

0

は:https://developer.android.com/reference/android/app/Activity.html#findViewById(int)

findViewById

View findViewById (int id)

は はのonCreateで処理されたXMLからのid属性で識別されたビューを検索します(バンドル)。

Parameters

のid int型

Returns

ビュー ビューまたはそれ以外の場合はnull見つかった場合。その警告が

から来

は、だから、変数listViewlistView = (ListView) findViewById(R.id.list);の実行後にnullの場合もあることがわかります。だからあなたは警告を受ける!次のように

あなたがもし条件でヌルチェック表現を提供することができる修正する方法

if(adapter != null && listView !=null) { 
    listView.setAdapter(adapter); 
} 
+0

Sanjeevありがとう、私はIDが見つからない可能性があり、したがってnullを返すことを理解します。しかし、私の疑問はそれを修正する方法です。 ps。私はちょうどページをリロードし、新しい版を読んでください。それは働いているようです、thx! –

関連する問題