java - Default constructor is deprecated,我在Android Studio中找不到片段问题

标签 java android-studio

当我像这样编写代码时,ControlFragment 工作正常,但是当我在另一个名为“AndresFragment”(第二个代码)的片段中使用完全相同的代码时,它不起作用。它说“不推荐使用 android.app.Fragment 中的默认构造函数”。我真的不明白...有人可以帮助我吗,我是新手

package com.example.fragm;

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

import androidx.fragment.app.Fragment;

public class ControlFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if (savedInstanceState != null) {

        }
        View myView = inflater.inflate(R.layout.controlfragment,
                container, false);
        return myView;
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

    }

}


“AndresFragment”的代码:

package com.example.fragm;

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

public class AndresFragment extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        if (savedInstanceState != null) {
// restore internal values if necessary
        }
        View myView1 = inflater.inflate(R.layout.andresfragment,
                container, false);
        return myView1;
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
    }
}

这是我的 Mainactivity.java 和它工作的 ControlFragment:

package com.example.fragm;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
            return;
        }
        ControlFragment myFragment = new ControlFragment();
        getSupportFragmentManager().beginTransaction().add(R.id.my_fragment_container, myFragment).commit();
    }
}

但是我不能使用“AndresFragment”

package com.example.fragm;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
            return;
        }
        AndresFragment myFragment = new AndresFragment();
        getSupportFragmentManager().beginTransaction().add(R.id.my_fragment_container, myFragment).commit();
    }
}

当我尝试编译它时,错误是:“错误:找不到适合 add(int,AndresFragment) 的方法 getSupportFragmentManager().beginTransaction().add(R.id.my_fragment_container, myFragment).commit();"

最佳答案

您在 AndresFragment 中导入错误。

代替:

import android.app.Fragment;

你应该使用:

import androidx.fragment.app.Fragment;

在你的第一个文件中,你有正确的导入,这就是为什么你在那里没有错误,android.app.Fragment 是旧的并且不推荐使用,所以这就是你收到错误消息的原因,因为你应该使用新的。

关于java - Default constructor is deprecated,我在Android Studio中找不到片段问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65053923/

相关文章:

java - 无法在我的集群上启动 Spark

java - 不继承可以实现多态吗?

java - Android:基于两个微调器选择组合的操作

android - 使用 gradle 创建属性文件

java - 如何为 IntelliJ IDEA 中的所有项目设置默认项目位置?

java - 为什么重新启动具有限制 UserManager.DISALLOW_USB_FILE_TRANSFER 使用的应用程序的设备会导致该设备无法使用?

java - android studio如何在模拟器中看到更多的手机型号

Java 彩票数组程序

java - 线程 Julia 集中的异常

android-studio - android build gradle错误(android 3.1.3)?连接超时: connect