나는 이상한 오류가납니다. 내 코드에서 WorkoutDetailFragment를 WorkoutDetailFragment 유형의 개체로 캐스팅하려고합니다. 오류가 말을 DetailActivity라는 이름의이 클래스에서 발생하는변환 할 수없는 유형 Android
package com.hfad.workout;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.Fragment;
public class WorkoutDetailFragment extends Fragment {
private long workoutId;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
if(savedInstanceState != null)
{
workoutId = savedInstanceState.getLong("workoutId");
}
android.support.v4.app.FragmentTransaction ft = getChildFragmentManager().beginTransaction();
com.hfad.workout.StopwatchFragment stopwatchFragment = new com.hfad.workout.StopwatchFragment();
ft.replace(R.id.stopwatch_container, stopwatchFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart(){
super.onStart();
View view = getView();
if(view != null)
{
TextView title = (TextView) view.findViewById(R.id.textTitle);
Workout workout = Workout.workouts[(int) workoutId];
title.setText(workout.getName());
TextView description = (TextView) view.findViewById(R.id.textDescription);
description.setText(workout.getDescription());
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
savedInstanceState.putLong("workoutId", workoutId);
}
public void setWorkout(long id)
{
this.workoutId = id;
}
}
: 여기 WorkoutDetailFragment 코드입니다 "Inconvertable 유형; 'com.hfad.workout.WorkoutDetailFragment'에서 'android.app.Fragment'을 시전 할 수 없습니다. 여기 DetailActivity의 코드는, 내가 오류가 코드의 조각 위에 주석이 : 어떤 도움을 주시면 더 좋구요
package com.hfad.workout;
import android.app.Activity;
import android.os.Bundle;
public class DetailActivity extends Activity
{
public static final String EXTRA_WORKOUT_ID = "id";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
//This is where the error occurs:
WorkoutDetailFragment workoutDetailFragment = (WorkoutDetailFragment) getFragmentManager().findFragmentById(R.id.detail_frag);
int workoutId = (int) getIntent().getExtras().get(EXTRA_WORKOUT_ID);
workoutDetailFragment.setWorkout(workoutId);
}
}
가, 다른 코드 또는 자세한 설명이 필요한 경우 알려 주시기를 :)
DetailActivity가'AppCompatActivity'를 확장하고 getFragmentManager() 대신'getSupportFragmentManager()'를 사용하십시오. –
대단히 감사합니다! – Aaron