crash - android activity crashes for no reason ? maybe because of setcontentview? -
crash - android activity crashes for no reason ? maybe because of setcontentview? -
i'm having issue android development (i'm newbiew btw) ..
i'm trying accomplish tutorial : http://developer.android.com/training/basics/firstapp/starting-activity.html, except problem sec activity crashes systematically , dont know why ..
when comment line : setcontentview(textview1): sec activity doesnt crash, text not shown . guess thats problem , have been looking hours , cant seem figure out :-s
here's code :
(main activity) xml layout: :
<relativelayout " android:id="@+id/texttoto" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.toto.mainactivity$placeholderfragment" > <textview android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/edittext_mail" android:layout_alignleft="@+id/edittext_mail" android:onclick="test_trucs" android:text="@string/test" /> <edittext android:id="@+id/txttopass" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/textview1" android:layout_below="@+id/textview1" android:layout_margintop="15dp" android:ems="10" android:hint="@string/texttopass" > </edittext> </relativelayout> **(second activity) xml layout:* :*
<relativelayout " android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.toto.blabla$placeholderfragment" > <textview android:id="@+id/textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </relativelayout> ****mainactivity.java:****
bundle com.toto; import android.content.context; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v7.app.actionbaractivity; import android.view.gravity; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.edittext; import android.widget.toast; public class mainactivity extends actionbaractivity { public final static string extra_message = "com.toto.message"; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()) .commit(); } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { homecoming true; } homecoming super.onoptionsitemselected(item); } /** * placeholder fragment containing simple view. */ public static class placeholderfragment extends fragment { public placeholderfragment() { } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.fragment_main, container, false); homecoming rootview; } } /** mettre les class ici **/ public void test_trucs(view view) { intent intent = new intent(this, blabla.class); edittext edittext = (edittext) findviewbyid(r.id.txttopass); string message = edittext.gettext().tostring(); intent.putextra(extra_message, message); startactivity(intent); } } ****blabla.java:****
package com.toto; import android.content.intent; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v7.app.actionbaractivity; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.widget.textview; public class blabla extends actionbaractivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_blabla); if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); } // message intent intent intent = getintent(); string message = intent.getstringextra(mainactivity.extra_message); // create text view textview textview1 = new textview(this); textview1.settextsize(40); textview1.settext(message); // set text view activity layout setcontentview(textview1); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.blabla, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { homecoming true; } homecoming super.onoptionsitemselected(item); } /** * placeholder fragment containing simple view. */ public static class placeholderfragment extends fragment { public placeholderfragment() { } @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view rootview = inflater.inflate(r.layout.fragment_blabla, container, false); homecoming rootview; } } } the logcat show :
06-19 15:35:47.982: e/androidruntime(22378): fatal exception: main 06-19 15:35:47.982: e/androidruntime(22378): process: com.toto, pid: 22378 06-19 15:35:47.982: e/androidruntime(22378): java.lang.runtimeexception: unable start activity componentinfo{com.toto/com.toto.blabla}: java.lang.nullpointerexception 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread.performlaunchactivity(activitythread.java:2184) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2233) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread.access$800(activitythread.java:135) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread$h.handlemessage(activitythread.java:1196) 06-19 15:35:47.982: e/androidruntime(22378): @ android.os.handler.dispatchmessage(handler.java:102) 06-19 15:35:47.982: e/androidruntime(22378): @ android.os.looper.loop(looper.java:136) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread.main(activitythread.java:5001) 06-19 15:35:47.982: e/androidruntime(22378): @ java.lang.reflect.method.invokenative(native method) 06-19 15:35:47.982: e/androidruntime(22378): @ java.lang.reflect.method.invoke(method.java:515) 06-19 15:35:47.982: e/androidruntime(22378): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785) 06-19 15:35:47.982: e/androidruntime(22378): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:601) 06-19 15:35:47.982: e/androidruntime(22378): @ dalvik.system.nativestart.main(native method) 06-19 15:35:47.982: e/androidruntime(22378): caused by: java.lang.nullpointerexception 06-19 15:35:47.982: e/androidruntime(22378): @ com.toto.blabla.oncreate(blabla.java:39) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activity.performcreate(activity.java:5231) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1087) 06-19 15:35:47.982: e/androidruntime(22378): @ android.app.activitythread.performlaunchactivity(activitythread.java:2148) 06-19 15:35:47.982: e/androidruntime(22378): ... 11 more i know newbiest thing ever, please indulgent ..
thanks in advance help !
you calling setcontentview twice, first:
setcontentview(r.layout.activity_blabla); isn't in tutorial. i'm not sure what's causing nullpointer exception, seems calling twice can cause problems.
if want utilize more complex layout (r.layout_blabla), , show message, seems case text view in layout, reference oncreate findviewbyid, instead of create new textview
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_blabla); if (savedinstancestate == null) { getsupportfragmentmanager().begintransaction() .add(r.id.container, new placeholderfragment()).commit(); } // message intent intent intent = getintent(); string message = intent.getstringextra(mainactivity.extra_message); // create text view textview textview1 = (textview)findviewbyid(r.id.textview1) textview1.settextsize(40); textview1.settext(message); // set text view activity layout setcontentview(textview1); } android-activity crash
Comments
Post a Comment