i start learning android , wanted build app fragments got many errors , don't know start debug beginner want ask find bug/bugs , know how debug kind of problems enter code here
07-09 23:16:45.075 8822-8822/? i/art﹕ not late-enabling -xcheck:jni (already on) 07-09 23:16:45.273 8822-8822/com.example.android.myapplication d/androidruntime﹕ shutting down vm 07-09 23:16:45.274 8822-8822/com.example.android.myapplication e/androidruntime﹕ fatal exception: main process: com.example.android.myapplication, pid: 8822 java.lang.runtimeexception: unable start activity componentinfo{com.example.android.myapplication/com.example.android.myapplication.mainactivity}: android.view.inflateexception: binary xml file line #9: error inflating class fragment @ android.app.activitythread.performlaunchactivity(activitythread.java:2325) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2390) @ android.app.activitythread.access$800(activitythread.java:151) @ android.app.activitythread$h.handlemessage(activitythread.java:1303) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5257) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698) caused by: android.view.inflateexception: binary xml file line #9: error inflating class fragment @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:763) @ android.view.layoutinflater.rinflate(layoutinflater.java:806) @ android.view.layoutinflater.inflate(layoutinflater.java:504) @ android.view.layoutinflater.inflate(layoutinflater.java:414) @ android.view.layoutinflater.inflate(layoutinflater.java:365) @ android.support.v7.app.appcompatdelegateimplv7.setcontentview(appcompatdelegateimplv7.java:249) @ android.support.v7.app.appcompatactivity.setcontentview(appcompatactivity.java:106) @ com.example.android.myapplication.mainactivity.oncreate(mainactivity.java:25) @ android.app.activity.performcreate(activity.java:5990) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) @ android.app.activitythread.performlaunchactivity(activitythread.java:2278) at android.app.activitythread.handlelaunchactivity(activitythread.java:2390) at android.app.activitythread.access$800(activitythread.java:151) at android.app.activitythread$h.handlemessage(activitythread.java:1303) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5257) 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:903) at com.android.internal.os.zygoteinit.main(zygoteinit.java:698) caused by: java.lang.nullpointerexception: attempt invoke virtual method 'void android.widget.button.setonclicklistener(android.view.view$onclicklistener)' on null object reference @ com.example.android.myapplication.topfragment.oncreateview(topfragment.java:54) @ android.support.v4.app.fragment.performcreateview(fragment.java:1789) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:924) @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1116) @ android.support.v4.app.fragmentmanagerimpl.addfragment(fragmentmanager.java:1218) @ android.support.v4.app.fragmentmanagerimpl.oncreateview(fragmentmanager.java:2170) @ android.support.v4.app.fragmentactivity.oncreateview(fragmentactivity.java:300) @ android.support.v7.app.appcompatdelegateimplv7.callactivityoncreateview(appcompatdelegateimplv7.java:838) @ android.support.v7.app.appcompatdelegateimplv11.callactivityoncreateview(appcompatdelegateimplv11.java:34) @ android.support.v7.app.appcompatdelegateimplv7.oncreateview(appcompatdelegateimplv7.java:826) @ android.support.v4.view.layoutinflatercompathc$factorywrapperhc.oncreateview(layoutinflatercompathc.java:44) @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:725) at android.view.layoutinflater.rinflate(layoutinflater.java:806) at android.view.layoutinflater.inflate(layoutinflater.java:504) at android.view.layoutinflater.inflate(layoutinflater.java:414) at android.view.layoutinflater.inflate(layoutinflater.java:365) at android.support.v7.app.appcompatdelegateimplv7.setcontentview(appcompatdelegateimplv7.java:249) at android.support.v7.app.appcompatactivity.setcontentview(appcompatactivity.java:106) at com.example.android.myapplication.mainactivity.oncreate(mainactivity.java:25) at android.app.activity.performcreate(activity.java:5990) at android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) at android.app.activitythread.performlaunchactivity(activitythread.java:2278) at android.app.activitythread.handlelaunchactivity(activitythread.java:2390) at android.app.activitythread.access$800(activitythread.java:151) at android.app.activitythread$h.handlemessage(activitythread.java:1303) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5257) 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:903) at com.android.internal.os.zygoteinit.main(zygoteinit.java:698) 07-09 23:16:45.282 8822-8834/com.example.android.myapplication i/art﹕ background partial concurrent mark sweep gc freed 172(20kb) allocspace objects, 0(0b) los objects, 34% free, 7mb/11mb, paused 15.024ms total 30.293ms 07-09 23:18:50.643 8822-8829/com.example.android.myapplication w/art﹕ suspending threads took: 5.642ms bottomfragment
package com.example.android.myapplication; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.textview; /** * created 0110 on 09/07/2015. */ public class bottomfragment extends fragment { private static textview centerview; private static textview bottomview; @nullable @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.topfragment,container,false); centerview = (textview) view.findviewbyid(r.id.firsttext); bottomview = (textview) view.findviewbyid(r.id.secondtext); return view; } public void setmeme(string top, string bottom){ centerview.settext(top); bottomview.settext(bottom); } }
topfragment
package com.example.android.myapplication; import android.app.activity; import android.os.bundle; import android.support.v4.app.fragment; import android.support.annotation.nullable; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.button; import android.widget.edittext; /** * created 0110 on 08/07/2015. */ public class topfragment extends fragment { public static edittext first; public static edittext second; topfraglistener activitycommander; public interface topfraglistener{ void creatmeme(string top, string bottom); } @override public void onattach(activity activity) { super.onattach(activity); try { activitycommander = (topfraglistener)activity; }catch (classcastexception e){ throw new classcastexception(activity.tostring()); } } @nullable @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view view = inflater.inflate(r.layout.bottomframgent,container,false); first = (edittext) view.findviewbyid(r.id.edittext); second = (edittext)view.findviewbyid(r.id.edittext2); final button button = (button) view.findviewbyid(r.id.button); button.setonclicklistener( new view.onclicklistener(){ public void onclick(view v){ buttonclicked(v); } } ); return view; } public void buttonclicked(view v){ activitycommander.creatmeme(first.gettext().tostring(),second.gettext().tostring()); } }
mainactivity
package com.example.android.myapplication; import android.support.v7.app.actionbaractivity; import android.os.bundle; import android.view.menu; import android.view.menuitem; public class mainactivity extends actionbaractivity implements topfragment.topfraglistener{ @override public void creatmeme(string top, string bottom) { bottomfragment bottomfragment = (bottomfragment) getsupportfragmentmanager().findfragmentbyid(r.id.fragment2); bottomfragment.setmeme(top,bottom); } @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_main, menu); return 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(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } } mainactivity xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".mainactivity"> <fragment android:layout_width="match_parent" android:layout_height="240dp" android:name="com.example.android.myapplication.topfragment" android:id="@+id/fragment" tools:layout="@layout/topfragment" android:layout_alignparentleft="true" android:layout_marginleft="0dp" android:layout_alignparenttop="true" android:layout_margintop="0dp" /> <fragment android:layout_width="match_parent" android:layout_height="500dp" android:name="com.example.android.myapplication.bottomfragment" android:id="@+id/fragment2" android:layout_gravity="center_horizontal" tools:layout="@layout/bottomframgent" android:layout_alignparentleft="true" android:layout_marginleft="0dp" android:layout_below="@+id/fragment" /> </relativelayout> topfragment xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/topfrag"> <edittext android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/edittext" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" android:gravity="center_horizontal" android:text="@string/toptext" android:layout_margintop="20dp"/> <edittext android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/edittext2" android:layout_below="@+id/edittext" android:layout_centerhorizontal="true" android:layout_margintop="36dp" android:gravity="center_horizontal" android:text="@string/bottomtext" /> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/buttontext" android:id="@+id/button" android:layout_below="@+id/edittext2" android:layout_centerhorizontal="true" /> </relativelayout> bottemfragment xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/abcdef" android:id="@+id/bottomfrag"> <textview android:layout_width="match_parent" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="centerview" android:gravity="center_horizontal" android:id="@+id/firsttext" android:layout_centervertical="true" android:layout_centerhorizontal="true" android:textcolor="#fff"/> <textview android:layout_width="match_parent" android:layout_height="wrap_content" android:textappearance="?android:attr/textappearancelarge" android:text="bottomtext" android:gravity="center_horizontal" android:id="@+id/secondtext" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" android:textcolor="#fff" /> </relativelayout>
you inlfating wrong xml file in topfragment:
view view = inflater.inflate(r.layout.bottomframgent,container,false); instead of
view view = inflater.inflate(r.layout.topfragment,container,false); and vice versa bottom fragment
Comments
Post a Comment