我有一個啓動器Activity A調用一個Activity B. B有多個片段。現在我想要的是能夠從其中一個碎片中殺死B.我用getActivity().finish()
,但它會殺死片段。get activity()。finish()不是查殺活動
如何殺死片段中的活動/退出應用程序?
我有一個啓動器Activity A調用一個Activity B. B有多個片段。現在我想要的是能夠從其中一個碎片中殺死B.我用getActivity().finish()
,但它會殺死片段。get activity()。finish()不是查殺活動
如何殺死片段中的活動/退出應用程序?
有在文檔中討論的方式:http://developer.android.com/training/basics/fragments/communicating.html
請Fragment
限定其中Activity
實現的接口。然後調用Activity,然後讓Activity完成(或其他)。
public class MyActivity extends Activity
implements MyFragment.MyListener {
public void onMyCancel() {
finish();
}
}
public class MyFragment extends Fragment {
private MyListener callback;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
callback= (MyListener) activity;
}
public interface MyListener {
public void onMyCancel();
}
public void btnCancel(View v) {
callback.onMyCancel();
}
}
這聽起來像一個優雅的解決方案。讓我試試看。快速的問題:將調用一個活動回顯示任何閃爍像活動已啓動並剛剛殺害。因爲第一個片段在調用活動B時會自動充氣。 –
如果我有多個片段嘗試使用相同的功能,該怎麼辦?我們只是說有多個片段,當我明確地聲明我正在實現接口的片段時,我將如何實現接口? –
這只是'getActivity()。finish()'的更復雜版本。 – Ridcully
您只能致電在您的活動B中完成(),這會關閉您當前的活動。
其實它的工作原理,確保你的片段不是來自活動A. –
它沒有在我的情況。該應用程序仍在運行,只是該片段將被殺死,但活動仍將在那裏。 –
你試過了嗎((ActivityB)getActivity())。finish –