gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:32:59 24 4
gpt4 key购买 nike

当我像这样编写代码时,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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com