2017-11-09 2 views
-2

をint型: -エラー:(147,53)エラー:TrainingFragmentクラスのコンストラクタのTrainingFragmentを指定の型に適用できません。必要:文字列、文字列、これは私にエラーを与える行である

「エラー:(147、53)エラー:クラスTrainingFragmentでコンストラクタTrainingFragmentが与えられたタイプに適用することはできません。 が必要:文字列、文字列は、見つかった をint型:引数 理由:ここでは、実際と仮引数リストの長さが異なる」

は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(); 
    } 
} 
をリストを作成しながら、私はエラーを得ているコードの私の一部ではありません

TrainingFra gment.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; 
    } 
} 

TrainingAdapter.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; 

    } 
} 
+1

あなたのコードと説明が十分明確ではありません。あなたが英語で何をしようとしているのかを説明してください。おそらく私は助けてくれるかもしれません。 – DevMike

答えて

0

あなたのコードは、引数なしのコンストラクタをミス、あなたはTrainingFragmentに名前、ディテールやimagetの数を渡す必要があります。

case 2: 
    TrainingFragment trainingFragment = new TrainingFragment(); 

TrainingFragmentクラスに引数なしのコンストラクタを追加し、別の方法として

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

でなければなりません。

関連する問題