android - How to remove a fragment from within itself -
in application, have instance of fragment, activityfragment
, added dynamically when button, addactivity
, pressed. there delete_button
in each activityfragment
, , have set onclicklistener button within activityfragment
class. when delete_button
pressed, want remove fragment inside onclick method. how go doing when create activityfragment
object , add activity in method outside of fragment class? , field should use .remove()
?
note delete_button
should remove instance of fragment in.
here mainactivity.java
activityfragment
class. addactivity
button @ bottom:
import android.app.fragment; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragmentactivity; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.button; import android.widget.textview; public class mainactivity extends fragmentactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } public static class activityfragment extends fragment { // @nullable used because method may return null value @nullable @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, bundle savedinstancestate) { final view fragment1 = inflater.inflate(r.layout.activity_fragment, container, false); button edit_button = (button) fragment1.findviewbyid(r.id.edit_button); button delete_button = (button) fragment1.findviewbyid(r.id.delete_button); edit_button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { textview activitytext = (textview) getview().findviewbyid(r.id.activity_text); activitytext.settext("success"); } }); delete_button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { getfragmentmanager().begintransaction() .remove().commit(); } }); return fragment1; } } public void addactivity(view view) { activityfragment myfragment = new activityfragment(); getfragmentmanager().begintransaction() .add(r.id.fragment_container, myfragment).commit(); } }
you can remove fragment instance this
delete_button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { getfragmentmanager().begintransaction() .remove(activityfragment.this).commit(); } });
Comments
Post a Comment