0

listView とハンドラーと 1 つのメディア プレーヤーがあります。リスト ビューは、歌詞の節を含む String 配列によって支えられています。曲が進行するにつれて、その時点で歌詞のある特定の行がリストの最初のビューになり、強調表示されるようにします。ハンドラーに次のコードがあります。

public void run(){
                        int X = mediaPlayer.getCurrentPosition();
                        S1.setText(""+X);
                        setProgressText();
                        seek_bar.setProgress(mediaPlayer.getCurrentPosition());
                            if(mediaPlayer.getCurrentPosition()/1000 > 0 && mediaPlayer.getCurrentPosition()/1000 < 20){
                            listView.smoothScrollToPosition(3);
                            View element = listView.getChildAt(3);
                            element.setBackgroundColor(Color.YELLOW);

                        }else if(mediaPlayer.getCurrentPosition()/1000 > 20 && mediaPlayer.getCurrentPosition()/1000 < 54){
                            listView.smoothScrollToPosition(4);
                            View element = listView.getChildAt(4);
                            element.setBackgroundColor(Color.YELLOW);


                System.out.println("2 if");

最初の if 条件は完全に正常に実行されていますが、2 番目の if 条件では NPE が発生します。

これが私の丸太猫です:

09-23 10:13:22.237: E/AndroidRuntime(307): FATAL EXCEPTION: main
09-23 10:13:22.237: E/AndroidRuntime(307): java.lang.NullPointerException
09-23 10:13:22.237: E/AndroidRuntime(307):  at com.mobiligent.stotram.MainActivity$1$2.run(MainActivity.java:183)
09-23 10:13:22.237: E/AndroidRuntime(307):  at android.os.Handler.handleCallback(Handler.java:587)
09-23 10:13:22.237: E/AndroidRuntime(307):  at android.os.Handler.dispatchMessage(Handler.java:92)
09-23 10:13:22.237: E/AndroidRuntime(307):  at android.os.Looper.loop(Looper.java:123)
09-23 10:13:22.237: E/AndroidRuntime(307):  at android.app.ActivityThread.main(ActivityThread.java:4627)
09-23 10:13:22.237: E/AndroidRuntime(307):  at java.lang.reflect.Method.invokeNative(Native Method)
09-23 10:13:22.237: E/AndroidRuntime(307):  at java.lang.reflect.Method.invoke(Method.java:521)
09-23 10:13:22.237: E/AndroidRuntime(307):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-23 10:13:22.237: E/AndroidRuntime(307):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-23 10:13:22.237: E/AndroidRuntime(307):  at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1