2

my problemI am working on transaction between fragments in android, I am having a fragment contains some relativelayout, on each layout i have to open a new fragment, So I have refer so many links and tried as below, But it gives me error all time, So Please suggest me where the wrong in my code, Please save me thank you in advance.

Error

09-04 12:21:47.764: E/AndroidRuntime(17756): java.lang.IllegalArgumentException: No view found for id 0x7f0500b3 (com.eps.fortalented:id/show_fragment) for fragment DetailDashBoardFragment{42b0b1e0 #1 id=0x7f0500b3}

code

onClick(){
                                    // second fragment
            DetailDashBoardFragment fragment = new DetailDashBoardFragment();
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.replace(R.id.show_fragment, fragment).addToBackStack(null);
            ft.commit();

}

DetailDashBoardFragment.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/show_fragment"
    android:layout_width="match_parent"
    android:layout_height="0dp" >




</FrameLayout>

deatailDescFragment.java

public class DetailDashBoardFragment extends Fragment implements
        OnClickListener {
    View v;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.detail_dashboard_fragmnet, container,
                false);
        return v;
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

    }

}

Activity

public class MyMainActivity extends FragmentActivity implements
        OnTabChangeListener {
    Menu menu;
    /** Called when the activity is first created. */
    public FragmentTabHost tabHost;

    @SuppressLint("NewApi")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.tab_bar);
        menu = (Menu) findViewById(R.id.menu_tab);
        menu.arrow.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                 finish();
                    overridePendingTransition(R.anim.bottom_in, R.anim.top_out);

            }
        });
        tabHost = (FragmentTabHost) findViewById(R.id.tabhost);
        tabHost.setOnTabChangedListener(this);
        tabHost.setup(this, getSupportFragmentManager(), R.id.tabFrameLayout);

        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(""),
                DashBoardFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator(""),
                DashBoardFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator(""),
                DashBoardFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator(""),
                DashBoardFragment.class, null);
        tabHost.addTab(tabHost.newTabSpec("tab5").setIndicator(""),
                DashBoardFragment.class, null);

        tabHost.getTabWidget()
                .getChildAt(1)
                .setBackground(
                        getResources().getDrawable(R.drawable.friend_request));
        tabHost.getTabWidget().getChildAt(2)
                .setBackground(getResources().getDrawable(R.drawable.masseges));
        tabHost.getTabWidget()
                .getChildAt(3)
                .setBackground(
                        getResources().getDrawable(R.drawable.notification_btn));

        tabHost.getTabWidget()
                .getChildAt(4)
                .setBackground(
                        getResources().getDrawable(R.drawable.share_icon));

        // Set Tab1 as Default tab and change image
        tabHost.getTabWidget().setCurrentTab(0);
        tabHost.getTabWidget()
                .getChildAt(0)
                .setBackground(
                        getResources().getDrawable(
                                R.drawable.dashboard_hover_btn));
    }

    @Override
    public void onTabChanged(String tabId) {

        /************ Called when tab changed *************/

        // ********* Check current selected tab and change according images
        // *******/

        for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
            if (i == 0)
                tabHost.getTabWidget().getChildAt(i)
                        .setBackgroundResource(R.drawable.dashboard_icon);
            else if (i == 1)
                tabHost.getTabWidget()
                        .getChildAt(i)
                        .setBackground(
                                getResources().getDrawable(
                                        R.drawable.friend_request));
            else if (i == 2)
                tabHost.getTabWidget().getChildAt(i)
                        .setBackgroundResource(R.drawable.masseges);
            else if (i == 3)
                tabHost.getTabWidget().getChildAt(i)
                        .setBackgroundResource(R.drawable.notification_btn);
            else if (i == 4)
                tabHost.getTabWidget().getChildAt(i)
                        .setBackgroundResource(R.drawable.share_icon);
        }

        Log.i("tabs", "CurrentTab: " + tabHost.getCurrentTab());

        if (tabHost.getCurrentTab() == 0)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab())
                    .setBackgroundResource(R.drawable.dashboard_hover_btn);
        else if (tabHost.getCurrentTab() == 1)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab())
                    .setBackgroundResource(R.drawable.friend_request_hover);
        else if (tabHost.getCurrentTab() == 2)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab())
                    .setBackgroundResource(R.drawable.message_hover);
        else if (tabHost.getCurrentTab() == 3)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab())
                    .setBackgroundResource(R.drawable.notification_btn_hover);
        else if (tabHost.getCurrentTab() == 4)
            tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab())
                    .setBackgroundResource(R.drawable.share_icon_hover);

    }

    @SuppressLint("InflateParams")
    private View prepareTabView(Drawable resId) {
        View view = LayoutInflater.from(this).inflate(R.layout.tab_indicator,
                null);
        ImageView iv = (ImageView) view.findViewById(R.id.iv_photo);
        iv.setBackground(resId);
        return view;
    }

}

logcat

09-04 14:33:53.656: E/AndroidRuntime(20715): FATAL EXCEPTION: main
09-04 14:33:53.656: E/AndroidRuntime(20715): Process: com.eps.fortalented, PID: 20715
09-04 14:33:53.656: E/AndroidRuntime(20715): java.lang.IllegalArgumentException: No view found for id 0x7f0500b3 (com.eps.fortalented:id/show_fragment) for fragment DetailDashBoardFragment{42b03730 #1 id=0x7f0500b3}
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:934)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.os.Handler.handleCallback(Handler.java:733)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.os.Handler.dispatchMessage(Handler.java:95)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.os.Looper.loop(Looper.java:146)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at android.app.ActivityThread.main(ActivityThread.java:5653)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at java.lang.reflect.Method.invokeNative(Native Method)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at java.lang.reflect.Method.invoke(Method.java:515)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
09-04 14:33:53.656: E/AndroidRuntime(20715):    at dalvik.system.NativeStart.main(Native Method)

tabbar.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/home_page_bg" >

    <com.eps.fortalented.uc.Header
        android:id="@+id/hdr_tab"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <android.support.v4.app.FragmentTabHost
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/hdr_tab" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="50dp"
                android:layout_alignParentBottom="true"
                android:background="#1F64A4" />

            <TabWidget
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:orientation="horizontal" />

            <FrameLayout
                android:id="@+id/tabFrameLayout"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1" />
        </LinearLayout>
    </android.support.v4.app.FragmentTabHost>

    <com.eps.fortalented.uc.Menu
        android:id="@+id/menu_tab"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
    android:layout_alignParentBottom="true">
    </com.eps.fortalented.uc.Menu>

</RelativeLayout>
user3820044
  • 177
  • 1
  • 3
  • 20

2 Answers2

1

Try this:

Sample:

DetailDashBoardFragment fragment = new DetailDashBoardFragment();
    FragmentTransaction ft = getChildFragmentManager().beginTransaction();
    ft.replace(R.id.show_fragment, fragment).addToBackStack(null);
    ft.commit();

Edit:

android.app.Fragment fr;
            fr = new DetailDashBoardFragment();
            FragmentManager fm = getFragmentManager();
            FragmentTransaction fragmentTransaction = fm.beginTransaction();
            fragmentTransaction.replace(R.id.show_fragment, fr);
            fragmentTransaction.commit();

Hope it helps.

yhel
  • 92
  • 1
  • 6
  • it gives the same error...Please see my logcat trace – user3820044 Sep 04 '14 at 09:04
  • Where did you use this layout? DetailDashBoardFragment.xml and also can you post your tab_bar.xml – yhel Sep 04 '14 at 09:21
  • wait i put some screens so that you can suggest me and get my problem..please wait – user3820044 Sep 04 '14 at 09:37
  • I think this is because you don't have R.id.show_fragment on your tab_bar.xml. Try this fragmentTransaction.replace(R.id.tabFrameLayout, fr); – yhel Sep 04 '14 at 09:39
  • 1
    Please see the screenshot – user3820044 Sep 04 '14 at 09:44
  • Have you tried what I suggested?..R.id.show_fragment must be a child of the layout being specified in your setContentView() In your case tab_bar.xml should have an object with an id show_fragment. – yhel Sep 04 '14 at 09:52
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/60606/discussion-between-user3820044-and-yhel). – user3820044 Sep 04 '14 at 10:04
0

Please try this code:

  Fragment fragment = new MoveSearchStudentFragment();
  FragmentManager fm = getActivity().getSupportFragmentManager();
  FragmentTransaction ft = fm.beginTransaction();
  ft.replace(R.id.content_frame, fragment);
  ft.commit();
Vishal Vaishnav
  • 3,346
  • 3
  • 26
  • 57