无法解析方法 getActivity()、setArguments()、getArguments() 和 newInstance()
Cannot Resolve Method getActivity(), setArguments(), getArguments(), and newInstance()
你能帮我解决这个错误吗,我不明白这是什么意思。
我正在学习来自 - sitepoint 的制作选项卡布局的教程。这是我的代码,我分开了我的文件
一分为二,Main Activity(eco_detailed_information.java) 并为其创建了 Adapter (eco_detailed_information_adapter)。
主要Activity(eco_detailed_information.java)
- 无法解析方法 setArguments(android.os.Bundle)
- 无法解析方法 getActivity()
- 无法解析方法 getArguments()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_eco_detailed_information);
//SET UP TOOLBAR
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
//Initializing NavigationView
mNavigationView = (NavigationView) findViewById(R.id.navigation_view);
//NEW INSTANCE
eco_detailed_information_adapter adapter = new eco_detailed_information_adapter(getSupportFragmentManager());
//SET UP PAGER - TAB LAYOUT with ADAPTER
ViewPager viewPager = (ViewPager)findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout)findViewById(R.id.tablayout);
tabLayout.setupWithViewPager(viewPager);
}
//DEFAULT CONSTRUCTOR
public eco_detailed_information() {}
//
public static eco_detailed_information newInstance(int tabPosition) {
eco_detailed_information fragment = new eco_detailed_information();
Bundle args = new Bundle();
args.putInt(TAB_POSITION, tabPosition);
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
int tabPosition = args.getInt(TAB_POSITION);
TextView tv = new TextView(getActivity());
tv.setGravity(Gravity.CENTER);
tv.setText("Text in Tab #" + tabPosition);
return tv;
}
}
适配器 (eco_detailed_information_adapter) - 无法解析 newInstance()
public class eco_detailed_information_adapter extends FragmentStatePagerAdapter {
public eco_detailed_information_adapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return eco_detailed_information_adapter.newInstance(position);
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
return "Tab " + position;
}
}
}
示例运行良好,但您提供的代码有一些错误,例如:在您的适配器中,您 return newInstance()
of eco_detailed_information_adapter 这是错误的!你应该return你的片段的newInstance。
您应该创建一个 class 样例 (DesignDemoFragment),将其放在 activity 或单独的 class 中(如果您想将其放在单独的 class 中,您应该做一些更改)然后将 newInstance()
放入其中。
你能帮我解决这个错误吗,我不明白这是什么意思。 我正在学习来自 - sitepoint 的制作选项卡布局的教程。这是我的代码,我分开了我的文件 一分为二,Main Activity(eco_detailed_information.java) 并为其创建了 Adapter (eco_detailed_information_adapter)。
主要Activity(eco_detailed_information.java) - 无法解析方法 setArguments(android.os.Bundle) - 无法解析方法 getActivity() - 无法解析方法 getArguments()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_eco_detailed_information);
//SET UP TOOLBAR
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
//Initializing NavigationView
mNavigationView = (NavigationView) findViewById(R.id.navigation_view);
//NEW INSTANCE
eco_detailed_information_adapter adapter = new eco_detailed_information_adapter(getSupportFragmentManager());
//SET UP PAGER - TAB LAYOUT with ADAPTER
ViewPager viewPager = (ViewPager)findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
TabLayout tabLayout = (TabLayout)findViewById(R.id.tablayout);
tabLayout.setupWithViewPager(viewPager);
}
//DEFAULT CONSTRUCTOR
public eco_detailed_information() {}
//
public static eco_detailed_information newInstance(int tabPosition) {
eco_detailed_information fragment = new eco_detailed_information();
Bundle args = new Bundle();
args.putInt(TAB_POSITION, tabPosition);
fragment.setArguments(args);
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle args = getArguments();
int tabPosition = args.getInt(TAB_POSITION);
TextView tv = new TextView(getActivity());
tv.setGravity(Gravity.CENTER);
tv.setText("Text in Tab #" + tabPosition);
return tv;
}
}
适配器 (eco_detailed_information_adapter) - 无法解析 newInstance()
public class eco_detailed_information_adapter extends FragmentStatePagerAdapter {
public eco_detailed_information_adapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return eco_detailed_information_adapter.newInstance(position);
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
return "Tab " + position;
}
}
}
示例运行良好,但您提供的代码有一些错误,例如:在您的适配器中,您 return newInstance()
of eco_detailed_information_adapter 这是错误的!你应该return你的片段的newInstance。
您应该创建一个 class 样例 (DesignDemoFragment),将其放在 activity 或单独的 class 中(如果您想将其放在单独的 class 中,您应该做一些更改)然后将 newInstance()
放入其中。