android - 使用 fragment 时遇到的问题

标签 android android-fragments

我必须创建一个必须使用 Fragment 的应用程序。 在 MainActivity 中,有一个 webView。从第二个 Activity 我 开始使用 Fragment。

这是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();
    }

}

这是它的 second.xml 文件:

    <?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>

之后我根据需要为 Fragments 创建了两个类 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);

        }

    }

这是第二个 fragment :

    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);

        }

    }

当我完成所有这些后,我的 SecondActivity 显示了一个我不知道如何处理的错误:

screen shot of error

最佳答案

如之前的回答所述,您的问题是 FirstFragment 的 Fragment 库不正确。

更改 FirstFragment.java 的第 5 行:

import android.support.v4.app.Fragment;

到:

import android.app.Fragment;

关于android - 使用 fragment 时遇到的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207786/

相关文章:

Android 0nTouch 事件问题 [Swipe DOWN and UP]

java - Android 上的压力测试内存

android - 如何获取 fragment 的ID?

android - 手动弹出FragmentManager backstack,如何实现逆向交易?

android - 清除帐户删除数据

android - 在构造函数中仅注入(inject)某些参数

android - 将 iOS 枚举转换为 Android

java - Android:ViewPager仅显示第一个 fragment ,其他页面空白

android - 谷歌地图未显示在 android Activity 中?

android - 通过 xml 中的 <fragment> 标签或通过代码中的 FragmentManager 将 fragment 添加到 Activity 中哪个更好?