So thx for any awnsers given :)
the solution to my problem was, that my line
Intent i = getIntent();
was not in my onCreate() function.
Thank you and have a nice day.
This is my function in my MainActivity, where i create the Intent and Start my second activity:
private void showArticle(String entryUrl, String entryTitle) {
Intent intent = new Intent(this, ArticleActivity.class);
intent.putExtra(EXTRA_URL, entryUrl.toString());
intent.putExtra(EXTRA_TITLE, entryTitle.toString());
Log.d("DEBUG", intent.getStringExtra(EXTRA_URL));
Log.d("DEBUG", intent.getStringExtra(EXTRA_TITLE));
Log.d("DEBUG", "EXTRAS PUTTED");
startActivity(intent);
Log.d("DEBUG", "ACTIVITY STARTED");
}
This is the console output:
01-02 15:29:21.808 7108-7108/com.example.myfirstapp D/DEBUG: http://example.com/correct-url
01-02 15:29:21.809 7108-7108/com.example.myfirstapp D/DEBUG: Yeah, we have the correct title hhere
01-02 15:29:21.809 7108-7108/com.example.myfirstapp D/DEBUG: EXTRAS PUTTED
01-02 15:29:21.809 7108-7108/com.example.myfirstapp I/Timeline: Timeline: Activity_launch_request id:com.example.myfirstapp time:1404863384
01-02 15:29:21.815 7108-7108/com.example.myfirstapp D/DEBUG: ACTIVITY STARTED
Sooo... 'til here everything works fine. Then, who guessed it, my second activity opens up:
Intent i = getIntent();
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_article);
getActionBar().setDisplayHomeAsUpEnabled(true);
if (i.getStringExtra(MainActivity.EXTRA_TITLE) == null) {
setTitle("MEEP");
} else {
setTitle(i.getStringExtra(MainActivity.EXTRA_TITLE));
}
...
But now my App crashes with this error message:
01-02 15:29:21.855 7108-7108/com.example.myfirstapp D/AndroidRuntime: Shutting down VM
01-02 15:29:21.870 7108-7108/com.example.myfirstapp E/AndroidRuntime:
FATAL EXCEPTION: main
Process: com.example.myfirstapp, PID: 7108
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.article.ArticleActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5373)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference
at com.example.myfirstapp.article.ArticleActivity.onCreate(ArticleActivity.java:44)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5373)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
Now my question is: why do i get a null pointer? i mean, the log clearly shows that the extra is put in the intent, why doesn't my second activity receive the key values? Can anyone help?
And thx for every tip.
for any more information, just write a comment :)
It's possible to change intent from outside of activity with setIntent() . In all other cases it can't. Show activity on this post. It CAN be null when Your application was updated from the market while it was in the memory and relaunched again after the update.
The Objects class of Java's Utility Library has a static method named isNull() to check if the object is null. When you pass a reference of an object to the isNull() method, it returns a boolean value. It returns true if the reference is null, otherwise, it returns false.
what is your "i" in second activity. Intent? If this intent is what you expect from main activity, then you should put this code in onNewIntent() if your activity is with SIngleTop flag, and this onNewIntent() should be overrriden.
in onCreate(), to get this intent you should do something like this
Intent i = getIntent()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With