Java 错误的第一个参数类型
这是我进口的样品Java 错误的第一个参数类型,java,android,Java,Android,这是我进口的样品 import android.support.design.widget.FloatingActionButton; import android.support.design.widget.NavigationView; import android.support.design.widget.Snackbar; import android.support.design.widget.TabLayout; import android.support.v4.app.Frag
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
这就是我使用片段的地方
private void SetUpViewPager(ViewPager viewpager) {
/*Creating a tab adapter*/
TabAdapter adapter = new TabAdapter(getSupportFragmentManager());
adapter.AddFragment(new Fragment1(),"Activity");
adapter.AddFragment(new Fragment2(),"Friends");
adapter.AddFragment(new Fragment3(),"Inbox");
/*Set the adapter to the view pager property*/
viewpager.setAdapter(adapter);
}
我得到一个错误的第一个参数发现碎片1必需碎片2
下面是适配器类
我不确定问题出在哪里在代码中
在下面 私有类TabAdapter扩展了FragmentPagerAdapter{
private ArrayList<Fragment> Fragments;
ArrayList<String> FragmentNames;
/*Constructor*/
TabAdapter(FragmentManager fm) {
super(fm);
Fragments = new ArrayList<>();
FragmentNames = new ArrayList<>();
}
/*Helper method which adds a fragment which in turn adds a tab*/
void AddFragment(Fragment1 fragment, String name) {
Fragments.add(fragment);
FragmentNames.add(name);
}
/*Get the current item of the tab its on*/
@Override
public Fragment getItem(int position) {
return Fragments.get(position);
}
/*Returns the number of fragments that are in this adapter*/
@Override
public int getCount() {
return Fragments.size();//Check on This
}
@Override
public CharSequence getPageTitle(int position)
{
return FragmentNames.get(position);
}
}
私有数组列表片段;
ArrayList片段名称;
/*建造师*/
TabAdapter(碎片管理器fm){
超级(fm);
片段=新的ArrayList();
FragmentNames=新的ArrayList();
}
/*Helper方法,该方法添加一个片段,该片段又添加一个选项卡*/
void AddFragment(Fragment1片段,字符串名称){
片段。添加(片段);
碎片名称。添加(名称);
}
/*获取其上选项卡的当前项*/
@凌驾
公共片段getItem(int位置){
返回碎片。获取(位置);
}
/*返回此适配器中的片段数*/
@凌驾
public int getCount(){
返回片段。size();//检查此
}
@凌驾
公共字符序列getPageTitle(int位置)
{
返回碎片名称。获取(位置);
}
}
AddFragment()应将Fragment1作为第一个参数。因此,错误是显而易见的
/*Helper method which adds a fragment which in turn adds a tab*/
void AddFragment(Fragment1 fragment, String name) {
Fragments.add(fragment);
FragmentNames.add(name);
}
如果要使方法接受多个类,那么有两个选项
AddFragment()
接受Fragment
作为第一个参数
addFragment(片段片段,字符串名称)
您能否显示实际的错误消息,可能有助于查看更多信息。是否用于AddFragment调用?该方法是如何声明的?请给出TapAdapter@algrid这就是密码。我只在addFragment方法下得到一条红线,先说错话Argument@algrid来看看我是如何实现它的
public interface FragmentInterface{
// You can declare common functionalities here
}
public class Fragment1 extends Fragment implements FragmentInterface {
// Class implementation
}
/*Helper method which adds a fragment which in turn adds a tab*/
void AddFragment(FragmentInterface fragment, String name) {
Fragments.add(fragment);
FragmentNames.add(name);
}