我有一些主要的活動與一些元素。其中之一是一個按鈕。我想單擊按鈕時加載一個片段。我希望片段能夠覆蓋整個活動,而不僅僅是一個佈局。然後在片段中還有一個Button,它必須加載另一片片段,以涵蓋所有內容,然後是另一片片段等等。在活動頂部的片段
所以我在Activity上設置了一個OnClickListener來加載第一個碎片。活動加載得很好。如果我點擊其他活動的按鈕,一切都很好。但是不管我嘗試過什麼,當我點擊應該加載片段的按鈕時,它總是崩潰。
這裏的主要活動代碼:
public class SignUpActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
Button next = (Button) findViewById(R.id.button_next_name);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SignNameFragment nameFragment = new SignNameFragment();
fragmentTransaction.add(PROBABLY_WHAT_I_AM_DOING_WRONG,nameFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
}
}
所有的XML是幾乎一樣的。 Activity的RelativeLayout,Fragments和ScrollView的FrameLayout,ImageView,EditText,TextView和Button。
事情我想到目前爲止,根據網絡上的建議:
- 主要活動的XML使用RelativeLayout的。我試圖加載的片段,但它未能
- 我改變它的FrameLayout
- 我用fragmentTransaction.add(R.id.fragment_container,nameFragment)
- 除了使用加()的,我試過更換(R.id.activity_sign_up,nameFragment)
- 延伸到FragmentActivity
- 設置一個的FrameLayout作爲我的主要活動的XML片段容器
我相信我的錯誤是,我沒有設置,我想在...中添加片段正確的方法。
我非常確定這將是一個菜鳥的錯誤,但我從來沒有使用過Fragments。那麼有什麼建議?
感謝
編輯: 當我點擊按鈕
E/AndroidRuntime這就是錯誤:致命異常:主要 過程:be.test.test,PID:16763 的java .lang.RuntimeException:[email protected]必須在layout.SignNameFragment.onAttach(SignNameFragment.java:84)上實現OnFragmentInteractionListener ,位於android.support.v4.app.FragmentM的 anagerImpl.moveToState(FragmentManager.java:1043) at android.support.v4.app.BackStackRecord.setLastIn(BackStackRecord.java:838) at android.support.v4.app.BackStackRecord.calculateFragments(BackStackRecord.java:861) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677) at android.support.v4.app。android.support.v4.app.BackStackRecord.run(BackStackRecord.java:719) FragmentManagerImpl $ 1.run(FragmentManager.java:536) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper .loop(活套。java:145) at android.app.ActivityThread.main(ActivityThread.java:6145) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java :372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
你爲什麼不發佈錯誤? –
[如何實現OnFragmentInteractionListener](http://stackoverflow.com/questions/24777985/how-to-implement-onfragmentinteractionlistener) –
如果您不需要OnFragmentInteractionListener,則可以將其完全刪除。 –