The method add(Fragment) in the type ArrayList<Fragment> is not applicable for x
时间: 2024-05-31 12:14:31 浏览: 10
这个错误通常出现在你尝试将一个类型为 x 的对象添加到 ArrayList<Fragment> 中。可能有两种情况:
1. x 不是 Fragment 类型,因此不能添加到 ArrayList<Fragment> 中。请确保你要添加的对象是 Fragment 类型的。
2. x 是 Fragment 类型,但你的 ArrayList 可能是使用泛型限定了其类型,比如 ArrayList<MyFragment>,它只能接受 MyFragment 类型的对象,而不能接受其他类型的 Fragment。请检查你的 ArrayList 类型是否为 ArrayList<Fragment>,如果不是,请将其更改为 ArrayList<Fragment>。
相关问题
优化这段代码 private void initPager() { ArrayList<User> list=new ArrayList<>(); ViewPager2 viewPager = findViewById(R.id.view_pager); ArrayList<Fragment> fragments=new ArrayList<>(); User user1=new User(); user1.setSong("等风吹"); user1.setSinger("不是花火呀/小田音乐社"); user1.setImageid(R.drawable.song1); list.add(user1); fragments.add(new ExampleFragment(list)); ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),getLifecycle(),fragments); viewPager.setAdapter(pagerAdapter); }
private void initPager() {
ViewPager2 viewPager = findViewById(R.id.view_pager);
ArrayList<Fragment> fragments = new ArrayList<>();
User user1 = new User();
user1.setSong("等风吹");
user1.setSinger("不是花火呀/小田音乐社");
user1.setImageid(R.drawable.song1);
fragments.add(ExampleFragment.newInstance(user1));
ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), getLifecycle(), fragments);
viewPager.setAdapter(pagerAdapter);
}
// 在 ExampleFragment 中添加 newInstance() 静态方法
public static ExampleFragment newInstance(User user) {
ExampleFragment fragment = new ExampleFragment();
Bundle args = new Bundle();
args.putSerializable("user", user);
fragment.setArguments(args);
return fragment;
}
// 在 ExampleFragment 中获取 User 数据
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mUser = (User) getArguments().getSerializable("user");
}
}
left <fragment>:missing registered class 是什么原因,如何改正
这个错误通常出现在使用 Android Fragment 的时候,意味着你的 Fragment 类没有在 AndroidManifest.xml 文件中注册。为了解决这个问题,你需要在 AndroidManifest.xml 文件中的 <application> 标签内注册你的 Fragment 类。例如,如果你的 Fragment 类名为 "MyFragment",则需要添加以下代码:
```
<application>
...
<activity android:name=".MainActivity" />
<fragment android:name=".MyFragment" />
...
</application>
```
记得要将 "MyFragment" 替换为你自己的 Fragment 类名。如果你已经注册了 Fragment 类,那么检查一下包名和类名是否正确,或者尝试重新编译项目。