android - FragmentTransaction 类型中的错误 : The method add(int, Fragment, String) 不适用于参数 (int, FragementTest, String)

标签 android

我正在尝试使用 Fragements。但是在 MainActivity.java 文件中 transaction.add(R.id.my_layout, testfrag, ""); 没有正确启动。请在下面找到我使用的代码。

package com.example.testtabs;

import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.TabActivity;
import android.view.Menu;
import android.widget.TabHost;
import android.support.v4.app.Fragment;
import com.example.testtabs.R;



public class MainActivity extends TabActivity {


    TabHost tab;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

         FragementTest testfrag=new FragementTest();
        FragmentManager manager=getFragmentManager();
        FragmentTransaction transaction=manager.beginTransaction();
        transaction.add(R.id.my_layout, testfrag, "");//Error is here

    }
}

activity_main.xml :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:id="@+id/my_layout"
  >

Error: The method add(int, Fragment, String) in the type FragmentTransaction is not applicable for the arguments (int, FragementTest, String)

fragment 测试

package com.example.testtabs;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * A simple {@link android.support.v4.app.Fragment} subclass.
 * 
 */
public class FragementTest extends Fragment {

    public FragementTest() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_fragement, container, false);
    }

}

最佳答案

改变:

import android.app.FragmentManager;
import android.app.FragmentTransaction;

到:

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

或者---

改变:

import android.support.v4.app.Fragment;

import android.app.Fragment;

关于android - FragmentTransaction 类型中的错误 : The method add(int, Fragment, String) 不适用于参数 (int, FragementTest, String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722007/

相关文章:

android - 如何在不使用缓存的情况下以编程方式在 Android 上强制蓝牙低能耗服务发现

android - 当用户选择在android中卸载我的应用程序时如何删除文件夹

android - 在安装适用于Windows 7(64位)的Android SDK之后,为什么没有加载任何程序包?

android - 在 fragment 中使用 Butterknife 时绑定(bind) View 为空

java - 使用 Timer 和 ArrayList 更新 TextView

android - 单选按钮图像

android - 第二次点击/单击标记不会调用 OnMarkerClickListener

Android Studio 生成签名的 apk modules.xml 未找到

android - 具有默认对话框外观和感觉的自定义对话框 - 这可能吗?

android - 如何在水平 ScrollView 中获取滚动状态 : Android