2016-05-17 19 views
0

ListViewの項目または行が押されたときに音を鳴らそうとしています。私はこのコードを使用しています:ListViewの項目をタップしたときに音を鳴らす

listaMjeseci.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       if (position == 0){ 
        MediaPlayer sijecanj = MediaPlayer.create(Mjeseci.this, R.raw.section1_mjeseci_sijecanj); 
        sijecanj.start(); 
       } 
      } 
     }); 

とNULLポインタ例外を取得しています。 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference

私は間違っていますか?

+0

findViewById(int)を使用してListViewを割り当てましたか? – PsyGik

答えて

0
listView.setOnItemClickListener(new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
         int position, long id) { 
         if (position == 0) 
         { 
        MediaPlayer sijecanj = MediaPlayer.create(Mjeseci.this, R.raw.section1_mjeseci_sijecanj); 
        sijecanj.start(); 
       } 
       } 
      }); 
+0

違いは何ですか?私がここに見る唯一の違いは、あなたが 'AdapterView.'を持っていないことです。あなたがあなたの答えを詳述できるなら、それはポスターを助けるでしょう。 –

+0

それは魅力のように機能します。違いは、彼の答えにOverrideがないことです。私がそれを削除すると、音はそれに訴えられているように再生されています。オーバーライドでこのエラーが発生した理由を教えてください。 – DaxHR

+0

@DaxHR '@ Override'はエラーを引き起こしていません。エラーは 'new AdapterView.OnItemClickListener()'のためです。アイテムのクリックリスナをアダプタではなく、リスナをクリックしたい場合は、 'new OnItemClickListener()'を使用します。あなたが 'AdapterView.OnItemClickListener()'を使用していたとき、アダプタはこのリスナに関連付けられていません。なぜなら、あなたはnullポインタを取得しているからです。あなたが理解したいと思っています。 –

関連する問題