0
我正在構建一個簡單的應用程序,我只想顯示我創建的片段的東西。我一直在尋找,我發現在計算器這個問題:在Android中的片段的錯誤
我實現的代碼上this answer,這我有什麼:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
BlankFragment fragment = new BlankFragment();
fragmentTransaction.add(R.id.content_frame, fragment);
fragmentTransaction.commit();
我的問題是。新增線路,因爲Android Studio中解決不了方法。 我不知道問題出在哪裏,所以我會在需要時發佈更多的代碼。
編輯
我想要顯示的片段,當我在一個cardView點擊。現在,在視圖中,當我點擊並運行此代碼:
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
BlankFragment fragment = new BlankFragment();
fragmentTransaction.add(R.id.content_frame, fragment);
fragmentTransaction.commit();
這logcat的是顯示出來:
03-07 11:21:40.431 13068-13068/com.example.sdilab.pap E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: [email protected] must implement OnFragmentInteractionListener
at com.example.sdilab.pap.BlankFragment.onAttach(BlankFragment.java:74)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1019)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
at android.os.Handler.handleCallback(Handler.java:800)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5468)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:936)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
at dalvik.system.NativeStart.main(Native Method)
我改變了代碼和我糾正上的onClick(一些錯誤),而現在的logcat是不同的。
這是活動主:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
<include layout="@layout/content_main"/>
<include layout="@layout/app_bar_main"/>
</android.support.v4.widget.DrawerLayout>
,我有這個的FrameLayout上content_main:
<FrameLayout
android:id="@+id/content_frame"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
這是我的onclick():
cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FrameLayout frame = (FrameLayout)findViewById(R.id.content_frame);
android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//setContentView(R.layout.fragment_blank);
BlankFragment fragment = new BlankFragment();
fragmentTransaction.add(R.id.content_frame, fragment);
fragmentTransaction.commit();
frame.setVisibility(View.VISIBLE);
}
});
你可以檢查我發佈的logcat嗎?我改變了代碼,就像你建議的那樣,這很好,但是當我點擊讓代碼運行的按鈕時,就像我在那裏提到的那樣,顯示了我正在談論的logcat。 –
好的,我正在檢查 –
請檢查第60行的代碼。onClick()中存在一些問題。可能是你沒有正確實例化你的可點擊查看。先檢查ID。或發佈activity_main的XML。 –