0
WorkoutDetailFragment가 형 변환되는 MainActivity.java의 행은 수행 할 수없는 오류를 표시합니다. 왜 작동하지 않는지 말해주십시오. 책에서 코드를 복사했습니다.코드에서 잘못된 점을 알려주십시오.
MainActivity
package gangster.workout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WorkoutDetailFragment frag = (WorkoutDetailFragment) getFragmentManager().findFragmentById(R.id.detail_frag);
frag.setWorkout(1);
}
}
Workout.Java
package gangster.workout;
public class Workout {
private String name;
private String description;
public static final Workout[] workouts = {
new Workout("The Limb Loosener" , " Pta nhi kya ksgdrna hai isme") ,
new Workout("The Timb Loosener" , " Pta nhi kya asdfasasfasasdkrna hai isme") ,
new Workout("The Pimb Loosener" , " Pta nhi kyaasf krna hai isme") ,
new Workout("The Zimb Loosener" , " Pta nhi kyasfasa krna hai isme") ,
};
private Workout(String name , String description){
this.name = name;
this.description = description;
}
public String getDescription(){
return description;
}
public String getName(){
return name;
}
public String toString(){
return this.name;
}
}
WorkoutDetailFragment.java
package gangster.workout;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class WorkoutDetailFragment extends Fragment {
private long workoutId;
public void setWorkout(long id) {
this.workoutId = id;
}
@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 View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
}
야, 그것을 작동합니다. 고맙습니다. 그래도 그걸 사용하는 것이 잘못 되었나요? –
코드에서 'android.support.v7.app.AppCompatActivity' 및'android.support.v4.app.Fragment'를 사용 중이며 둘 다 Android 지원 라이브러리에 있음을 나타냅니다. 이것은'getSupportFragmentManager()'를 호출하여 올바른'FragmentManager'를 가져와야합니다. 당신의 문제를 해결하기 때문에 대답을 받아주세요 :) –
나는 초보자입니다. 좀 더 정교하게 설명해 주시겠습니까? : P 4 분 후에 답변을 수락 할 수 있습니다. –