![](/img/trans.png)
[英]cannot resolve method show(android.support.v4.app FragmentManager,java.lang.string)
[英]Cannot resolve method super() error in fragmentmanager Android
我不是 Java 編碼員,而是在嘗試學習 Java 的同時嘗試構建應用程序。 我正在嘗試添加 2 個片段,一個是登錄片段,一個是注冊片段,但是在使用超級構造函數時,我面臨無法解決錯誤。 誰能建議我做錯了什么?
我知道 super 用於訪問父類構造函數,在我的情況下它不是空的。
以下是 MainActivity 代碼:
public class MainActivity extends FragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager2 viewPager = findViewById(R.id.viewPager);
AuthenticationPagerAdapter pagerAdapter = new AuthenticationPagerAdapter(getSupportFragmentManager());
pagerAdapter.addFragment(new fragment_login());
pagerAdapter.addFragment(new fragment_register());
viewPager.setAdapter(pagerAdapter);
}
public static class AuthenticationPagerAdapter extends FragmentStateAdapter
{
private ArrayList<Fragment> fragmentList = new ArrayList<>();
public AuthenticationPagerAdapter(FragmentManager fragmentActivity)
{
super(fragmentActivity);
}
public Fragment getItem(int i)
{
return fragmentList.get(i);
}
public int getCount()
{
return fragmentList.size();
}
void addFragment(Fragment fragment) {
fragmentList.add(fragment);
}
@NonNull
@Override
public Fragment createFragment(int position)
{
return null;
}
@Override
public int getItemCount()
{
return 0;
}
}
}
我認為對fragmentActivity
參數使用super()
是不可能的。 您應該從位置較高的構造函數向super()
方法發送一個值。 順便說一下,我看不到MainActivity
類的構造函數。 你想從哪一類得到值?
在構造函數中使用super()
您試圖調用父類的構造函數。
在這種情況下, FragmentStateAdapter
有 3 個構造函數:
FragmentStateAdapter(FragmentActivity fragmentActivity)
FragmentStateAdapter(Fragment fragment)
FragmentStateAdapter(FragmentManager fragmentManager, Lifecycle lifecycle)
在您的情況下,您有:
public AuthenticationPagerAdapter(FragmentManager fragmentActivity)
和super(FragmentManager);
不匹配任何超級構造函數。
您可以使用以下內容:
public AuthenticationPagerAdapter(FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
public AuthenticationPagerAdapter(FragmentManager fragmentManager,Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.