Devraj
Devraj

Reputation: 1531

Facing Issues when working with fragment

I have to create an application in which I have to work with Fragment. In the MainActivity, there is a webView. From the SecondActivity I have starting using Fragment.

Here is the code of SecondActivity:

package com.dev.testapp;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;

public class Second extends Activity {


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);


    }

    public void choosefragment(View view) {

      Fragment fg;

        if(view == findViewById(R.id.secondbtn2)) {

            fg = new SecondFragment();
        }

        else
        {
            fg = new FirstFragment();
        }

        FragmentManager fm = getFragmentManager();
        FragmentTransaction fragmentTransaction = fm.beginTransaction();
        fragmentTransaction.replace(R.id.frag1, fg);
        fragmentTransaction.commit();
    }

}

Hhere is its second.xml file:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff" >

   <Button
     android:id="@+id/secondbtn1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="first fragment"
     android:onClick="chooseFragment" />

   <Button
     android:id="@+id/secondbtn2"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:text="second fragment" 
     android:onClick="chooseFragment"/> 

   <fragment 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:name="com.dev.testapp.fragment1"
       android:id="@+id/frag1"
       />
 </LinearLayout>

After that I created two more classes for Fragments as it is required code of FirstFragment:

    package com.dev.testapp;

    import android.app.Activity;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;

    public class FirstFragment extends Fragment{


        public View onCreate(LayoutInflater inflater, 
                ViewGroup container , Bundle savedInstanceState) {

             //Inflate the layout for this fragment

            return inflater.inflate(R.layout.fragment1,container, false);

        }

    }

And here is the SecondFragment:

    package com.dev.testapp;

    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;

    public class SecondFragment extends Fragment{

        public View onCreate(LayoutInflater inflater, 
                ViewGroup container , Bundle savedInstanceState) {

             //Inflate the layout for this fragment

            return inflater.inflate(R.layout.fragment2,container, false);

        }

    }

When I am done with all this, my SecondActivity is showing an error that I don't know how to handle:

screen shot of error

Upvotes: 1

Views: 61

Answers (3)

Shaun
Shaun

Reputation: 865

As noted in previous answers, your problem is incorrect Fragment library for FirstFragment.

Change line 5 of FirstFragment.java:

import android.support.v4.app.Fragment;

to:

import android.app.Fragment;

Upvotes: 1

Noya
Noya

Reputation: 3899

your activity use this import android.app.Fragment;

your fragment is import android.support.v4.app.Fragment;

So you either have both extending the Fragment in the app package or in the support library

Upvotes: 1

fstef
fstef

Reputation: 379

Your second fragment is of the type android.app.Fragment while your first fragment is android.support.v4.app.Fragment.

Upvotes: 1

Related Questions