错误:(147, 53) 错误: 类训练片段中的构造函数训练片段无法应用于给定类型;必需:字符串,字符串,整数



这是给我错误的行:-

"错误:(147, 53( 错误:类训练片段中的构造函数训练片段无法应用于给定类型; 必需:字符串,字符串,整数 找到:无参数 原因:实际参数列表和正式参数列表的长度不同">

这是我在 MainActivity 中创建列表时出错的代码部分.java:-

private Fragment getHomeFragment() {
    switch (navItemIndex) {
        case 0:
            HomeFragment homeFragment = new HomeFragment();
            return homeFragment;
        case 1:
            GalleryFragment galleryFragment = new GalleryFragment();
            return galleryFragment;
        case 2:
            TrainingFragment trainingFragment = new TrainingFragment();
            return trainingFragment;
        case 3:
            NutritionFragment nutritionFragment = new NutritionFragment();
            return nutritionFragment;
        case 4:
            ContactFragment contactFragment = new ContactFragment();
            return contactFragment;
        default:
            return new HomeFragment();
    }
}

训练片段.java

public class TrainingFragment extends Fragment {
String name;
String detail;
int image;
public TrainingFragment(String name, String detail, int image) {
    this.name = name;
    this.detail = detail;
    this.image = image;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getDetail() {
    return detail;
}
public void setDetail(String detail) {
    this.detail = detail;
}
public int getImage() {
    return image;
}
public void setImage(int image) {
    this.image = image;
    }
}

培训适配器.java

public class TrainingAdapter extends ArrayAdapter<TrainingFragment> {
Context context;
List<TrainingFragment> TrainingFragmentList;
TrainingFragment TrainingFragment;

public TrainingAdapter(@NonNull Context context, @LayoutRes int resource, @NonNull List<TrainingFragment> TrainingFragmentObject) {
    super(context, resource, TrainingFragmentObject);
    this.context = context;
    this.TrainingFragmentList = TrainingFragmentObject;
}

@Override
public View getView(final int position, @Nullable View view, @NonNull ViewGroup parent) {
    view = LayoutInflater.from(context).inflate(R.layout.training_list,null);
    TextView name;
    ImageView image;
    name = (TextView)view.findViewById(R.id.name);
    image = (ImageView)view.findViewById(R.id.image);
//looping TrainingFragment list
    TrainingFragment = TrainingFragmentList.get(position);
    name.setText(TrainingFragment.getName());
    image.setImageResource(TrainingFragment.getImage());
    view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(context, ActivityDetail.class);
            intent.putExtra("name", TrainingFragmentList.get(position).getName());
            intent.putExtra("detail", TrainingFragmentList.get(position).getDetail());
            intent.putExtra("image", TrainingFragmentList.get(position).getImage());
            context.startActivity(intent);
        }
    });
    return view;
    }
}

您的代码缺少一个无参数构造函数,您必须将名称、详细信息和图像数量传递给 TrainingFragment

case 2:
    TrainingFragment trainingFragment = new TrainingFragment();

应该是

case 2:
    TrainingFragment trainingFragment = new TrainingFragment("name", "detail", 1);

作为替代方法,将无参数构造函数添加到类TrainingFragment

最新更新