我真的不知道如何开始这个,但我已经搜索了整个Google和stackoverflow。
我有这个收音机应用程序播放收音机(duh)并显示有关当前播放的歌曲的信息。但我在这里有一个问题:
我有一个Activity(MainActivity)和3个片段(playerFragment,其余的并不重要),片段是标签。
我在MainActivity上解析JSON数据并将其显示在playerFragment上。我能够直接显示它,没有问题。但当我按下按钮并再次打开应用程序时,它会立即崩溃。当然,我有一个只播放音频的服务,我确保应用程序在用户返回应用程序时加载数据(在这种情况下,Activity和片段在服务仍在运行时被销毁)。我检查了日志,它在开始setText onCreate时指出了NullPointerException。我使用完全相同的代码来加载数据(在销毁Activity和Fragment之前)。
我不知道我将如何在此处发布代码,因为我不知道哪里出错并且代码很长,请告诉我您希望看到的代码部分是什么&#39错了。
开始出错的代码:
TextView titleTextView = (TextView) findViewById(R.id.titleTextView);
TextView artistTextView = (TextView) findViewById(R.id.artistTextView);
TextView lyricsTextView = (TextView) findViewById(R.id.lyricsTextView);
ImageView albumImageView = (ImageView) findViewById(R.id.albumImageView);
JSONObject jsonObject = new JSONObject(jsonData);
String title = jsonObject.getString("title");
String artist = jsonObject.getString("artist");
String lyrics = jsonObject.getString("lyrics");
String albumURL = jsonObject.getString("coverUrl");
STARTING HERE: ---> titleTextView.setText(title);
artistTextView.setText("\n" + artist);
lyricsTextView.setText("\n" + lyrics);
当我第一次打开应用程序并解析它时,此代码能够显示数据,当我返回/启动应用程序时(服务正在运行时)应用程序关闭。
logcat:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.brandon.sgpradio/com.brandon.sgpradio.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2395)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2453)
at android.app.ActivityThread.access$900(ActivityThread.java:173)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5579)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.brandon.sgpradio.MainActivity.parseJson(MainActivity.java:225)
at com.brandon.sgpradio.MainActivity.isMyServiceRunning(MainActivity.java:282)
at com.brandon.sgpradio.MainActivity.onCreate(MainActivity.java:97)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2453)
at android.app.ActivityThread.access$900(ActivityThread.java:173)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5579)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
谢谢!
答案 0 :(得分:0)
更新: 1.通过ViewPager将标记添加到活动时,为标记添加标记。
fragment = new playerFragment();
fragment.setTag( “player_fragment”);
PlayerFragment pFragment = 。getFragmentManager()findFragmentByTag( “player_fragment”); if(pFragment!= null) {
pFragment.setTextViewText();
}