android - Changing fragment with click on imagebutton -
i new android. , trying create app have 3 imagebuttons
on top in horizontal line , fragment in below portion can change click of button (same tinder android app). have tried using 2 different fragments, 1 3 image buttons , other below one). tried using gridview
images , fragment in below portion. have tried using images , dynamically changing fragments. have got different errors resulting in crashes. want know how can achieve objective in efficient way?
edit : codes following when using images without gridview
or fragments imagebuttons
.
package com.psycho.ayush.sahanubhooti_20; import android.support.v4.app.fragmentactivity; import android.os.bundle; import android.support.v4.app.fragmenttransaction; import android.view.view; import android.widget.imagebutton; import android.widget.toast; public class mainactivity extends fragmentactivity { imagebutton ngosbutton, profilebuttton, donatebutton; ngosfragment ngosfragment; profilefragment profilefragment; donatefragment donatefragment; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); ngosbutton = (imagebutton)findviewbyid(r.id.ngobutton); profilebuttton = (imagebutton)findviewbyid(r.id.profilebutton); donatebutton = (imagebutton)findviewbyid(r.id.donatebutton); ngosbutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { fragmenttransaction fragtrans = getsupportfragmentmanager().begintransaction(); fragtrans.add(r.id.fragment_container, ngosfragment); fragtrans.addtobackstack(null); fragtrans.commit(); } }); } } <?xml version="1.0" encoding="utf-8"?> <framelayout 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:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" android:id="@+id/fragment_container" tools:context="com.psycho.ayush.sahanubhooti_20.mainactivity"> <imagebutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/ngobutton" android:src="@drawable/ngo" android:background="@android:color/transparent" /> <imagebutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/profilebutton" android:layout_gravity="center_horizontal|top" android:src="@drawable/profile" android:background="@android:color/transparent" /> <imagebutton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/donatebutton" android:layout_gravity="right|top" android:src="@drawable/donate" android:background="@android:color/transparent" /> </framelayout>
rest have 3 fragments(ngosfragment, donatefragment , profilefragment), have not changed. have not added onclicklistener rest of button in here.
07-25 21:18:09.111 23385-23407/com.psycho.ayush.sahanubhooti_20 i/openglrenderer: initialized egl, version 1.4 07-25 21:18:09.111 23385-23407/com.psycho.ayush.sahanubhooti_20 w/openglrenderer: failed choose config egl_swap_behavior_preserved, retrying without... 07-25 21:18:18.321 23385-23385/com.psycho.ayush.sahanubhooti_20 e/androidruntime: fatal exception: main process: com.psycho.ayush.sahanubhooti_20, pid: 23385 java.lang.nullpointerexception: attempt write field 'android.support.v4.app.fragmentmanagerimpl android.support.v4.app.fragment.mfragmentmanager' on null object reference @ android.support.v4.app.backstackrecord.doaddop(backstackrecord.java:418) @ android.support.v4.app.backstackrecord.add(backstackrecord.java:408) @ com.psycho.ayush.sahanubhooti_20.mainactivity$1.onclick(mainactivity.java:30) @ android.view.view.performclick(view.java:4756) @ android.view.view$performclick.run(view.java:19761) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5253) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694)
set on click listener on buttons , set below code set different fragments on frame layout. frame layout id resource id of frame layout set in activity , fragment class fragment created called on click of image buttons.
getsupportfragmentmanager().begintransaction().replace(r.id.frame layout id, fragment class name).commit()
Comments
Post a Comment