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