Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中更改另一个片段中片段基的输出_Java_Android_Android Fragments - Fatal编程技术网

Java 如何在android studio中更改另一个片段中片段基的输出

Java 如何在android studio中更改另一个片段中片段基的输出,java,android,android-fragments,Java,Android,Android Fragments,我为一个应用程序编写了这段代码,它假设给出一个身体部位列表,如手臂和腿,在第一个片段中单击一个,运动列表应显示在第二个片段中。如果用户按下另一个选项,该列表假设会更改,是否存在问题?它会自动显示第一个选项,但不会更改在用户按下另一个选项后,请告诉我如何更改第二个片段中的内容 主类 public class MainActivity extends Activity implements WorkoutListFragment.WorkoutListener { @Override pr

我为一个应用程序编写了这段代码,它假设给出一个身体部位列表,如手臂和腿,在第一个片段中单击一个,运动列表应显示在第二个片段中。如果用户按下另一个选项,该列表假设会更改,是否存在问题?它会自动显示第一个选项,但不会更改在用户按下另一个选项后,请告诉我如何更改第二个片段中的内容

主类

public class MainActivity extends Activity
    implements WorkoutListFragment.WorkoutListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WorkoutDetailFragment frag = (WorkoutDetailFragment)
            getFragmentManager().findFragmentById(R.id.detail_frag);



    frag.setWorkoutId(1);
}

public void itemClicked(long id){
    int itemSelected = (int)id;
    String message = String.format("ID selected %d", itemSelected);
    Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;

public Workout(String name, String description) {
    this.name = name;
    this.description = description;
}

public static final Workout[] workouts= {
        new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
        new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
        new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
        new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};

public String getName() {
    return name;
}

public String getDescription() {
    return description;
}

@Override
public String toString() {
    return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;

public WorkoutDetailFragment() {
    // Required empty public constructor
}


@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);
}

@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());
        Log.v(TAG, workout.getName());

        TextView description = (TextView)view.findViewById(R.id.TextDescription);
        description.setText(workout.getDescription());
        Log.v(TAG, workout.getDescription());
    }

}

public void setWorkoutId(long id){
    this.workoutId = id;
}

}
public class WorkoutListFragment extends ListFragment {

static interface WorkoutListener {
    void itemClicked(long id);
}

private WorkoutListener listener;
public WorkoutListFragment() {
    // Required empty public constructor
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    this.listener = (WorkoutListener)activity;
}

@Override
public void onListItemClick(ListView l, View v, int position, long id){
    if (listener != null){
        listener.itemClicked(id);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // create a string array with workout names
    String[] names = new String [Workout.workouts.length];
    for (int i=0; i < names.length; i++){
        names[i] = Workout.workouts[i].getName();
    }

    // Create an array adapter
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            inflater.getContext(),
            android.R.layout.simple_list_item_1,
            names);

    // bind the adapter to the control
    setListAdapter(adapter);

    // this call gives you the default layout view for the
    // ListFragment
    return super.onCreateView(inflater, container, savedInstanceState);
}

}
二等舱

public class MainActivity extends Activity
    implements WorkoutListFragment.WorkoutListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WorkoutDetailFragment frag = (WorkoutDetailFragment)
            getFragmentManager().findFragmentById(R.id.detail_frag);



    frag.setWorkoutId(1);
}

public void itemClicked(long id){
    int itemSelected = (int)id;
    String message = String.format("ID selected %d", itemSelected);
    Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;

public Workout(String name, String description) {
    this.name = name;
    this.description = description;
}

public static final Workout[] workouts= {
        new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
        new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
        new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
        new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};

public String getName() {
    return name;
}

public String getDescription() {
    return description;
}

@Override
public String toString() {
    return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;

public WorkoutDetailFragment() {
    // Required empty public constructor
}


@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);
}

@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());
        Log.v(TAG, workout.getName());

        TextView description = (TextView)view.findViewById(R.id.TextDescription);
        description.setText(workout.getDescription());
        Log.v(TAG, workout.getDescription());
    }

}

public void setWorkoutId(long id){
    this.workoutId = id;
}

}
public class WorkoutListFragment extends ListFragment {

static interface WorkoutListener {
    void itemClicked(long id);
}

private WorkoutListener listener;
public WorkoutListFragment() {
    // Required empty public constructor
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    this.listener = (WorkoutListener)activity;
}

@Override
public void onListItemClick(ListView l, View v, int position, long id){
    if (listener != null){
        listener.itemClicked(id);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // create a string array with workout names
    String[] names = new String [Workout.workouts.length];
    for (int i=0; i < names.length; i++){
        names[i] = Workout.workouts[i].getName();
    }

    // Create an array adapter
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            inflater.getContext(),
            android.R.layout.simple_list_item_1,
            names);

    // bind the adapter to the control
    setListAdapter(adapter);

    // this call gives you the default layout view for the
    // ListFragment
    return super.onCreateView(inflater, container, savedInstanceState);
}

}
三等舱

public class MainActivity extends Activity
    implements WorkoutListFragment.WorkoutListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WorkoutDetailFragment frag = (WorkoutDetailFragment)
            getFragmentManager().findFragmentById(R.id.detail_frag);



    frag.setWorkoutId(1);
}

public void itemClicked(long id){
    int itemSelected = (int)id;
    String message = String.format("ID selected %d", itemSelected);
    Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;

public Workout(String name, String description) {
    this.name = name;
    this.description = description;
}

public static final Workout[] workouts= {
        new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
        new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
        new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
        new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};

public String getName() {
    return name;
}

public String getDescription() {
    return description;
}

@Override
public String toString() {
    return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;

public WorkoutDetailFragment() {
    // Required empty public constructor
}


@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);
}

@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());
        Log.v(TAG, workout.getName());

        TextView description = (TextView)view.findViewById(R.id.TextDescription);
        description.setText(workout.getDescription());
        Log.v(TAG, workout.getDescription());
    }

}

public void setWorkoutId(long id){
    this.workoutId = id;
}

}
public class WorkoutListFragment extends ListFragment {

static interface WorkoutListener {
    void itemClicked(long id);
}

private WorkoutListener listener;
public WorkoutListFragment() {
    // Required empty public constructor
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    this.listener = (WorkoutListener)activity;
}

@Override
public void onListItemClick(ListView l, View v, int position, long id){
    if (listener != null){
        listener.itemClicked(id);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // create a string array with workout names
    String[] names = new String [Workout.workouts.length];
    for (int i=0; i < names.length; i++){
        names[i] = Workout.workouts[i].getName();
    }

    // Create an array adapter
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            inflater.getContext(),
            android.R.layout.simple_list_item_1,
            names);

    // bind the adapter to the control
    setListAdapter(adapter);

    // this call gives you the default layout view for the
    // ListFragment
    return super.onCreateView(inflater, container, savedInstanceState);
}

}
四等舱

public class MainActivity extends Activity
    implements WorkoutListFragment.WorkoutListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WorkoutDetailFragment frag = (WorkoutDetailFragment)
            getFragmentManager().findFragmentById(R.id.detail_frag);



    frag.setWorkoutId(1);
}

public void itemClicked(long id){
    int itemSelected = (int)id;
    String message = String.format("ID selected %d", itemSelected);
    Log.v("DEBUG", message);
}
}
public class Workout {
private String name;
private String description;

public Workout(String name, String description) {
    this.name = name;
    this.description = description;
}

public static final Workout[] workouts= {
        new Workout("Chest Workout", "3 Bench Press\n10Flys\nWide Dips"),
        new Workout("Legs", "5 Squats\n3x12 Leg Curl\n3x10 Leg Press"),
        new Workout("Back", "10 Pullups\n 3x8 Dumbell Rows"),
        new Workout("Arms", "10 Biceps Curls\n10 Dips\n3x10 Preacher Curls")
};

public String getName() {
    return name;
}

public String getDescription() {
    return description;
}

@Override
public String toString() {
    return this.name;
}
}
public class WorkoutDetailFragment extends Fragment {
private final String TAG = "DEBUG";
private long workoutId;

public WorkoutDetailFragment() {
    // Required empty public constructor
}


@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);
}

@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());
        Log.v(TAG, workout.getName());

        TextView description = (TextView)view.findViewById(R.id.TextDescription);
        description.setText(workout.getDescription());
        Log.v(TAG, workout.getDescription());
    }

}

public void setWorkoutId(long id){
    this.workoutId = id;
}

}
public class WorkoutListFragment extends ListFragment {

static interface WorkoutListener {
    void itemClicked(long id);
}

private WorkoutListener listener;
public WorkoutListFragment() {
    // Required empty public constructor
}

@Override
public void onAttach(Activity activity){
    super.onAttach(activity);
    this.listener = (WorkoutListener)activity;
}

@Override
public void onListItemClick(ListView l, View v, int position, long id){
    if (listener != null){
        listener.itemClicked(id);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // create a string array with workout names
    String[] names = new String [Workout.workouts.length];
    for (int i=0; i < names.length; i++){
        names[i] = Workout.workouts[i].getName();
    }

    // Create an array adapter
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            inflater.getContext(),
            android.R.layout.simple_list_item_1,
            names);

    // bind the adapter to the control
    setListAdapter(adapter);

    // this call gives you the default layout view for the
    // ListFragment
    return super.onCreateView(inflater, container, savedInstanceState);
}

}
公共类WorkoutListFragment扩展ListFragment{
静态接口监听器{
已单击的无效项(长id);
}
私人监听;
公共工作列表片段(){
//必需的空公共构造函数
}
@凌驾
公共事务主任(活动){
超级转速计(活动);
this.listener=(WorkoutListener)活动;
}
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
if(侦听器!=null){
listener.itemClicked(id);
}
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//使用训练名称创建字符串数组
String[]name=新字符串[Workout.workouts.length];
for(int i=0;i
在onClickListener或任何侦听单击的内容中,您应该在活动中写入以下内容:

FragmentManager fragementManager = getFragmentManager();
fragementManager.beginTransaction().replace(R.id.layout, new NextFragment()).commit();
在本例中,R.id.layout应该是放置片段的布局的id。NextFragment应该是要显示的片段的类。
希望这有帮助!:)

我在第一节课上点击了一个项目,你需要用你想要的任何片段来替换它。谢谢大家,完成后对我有很大帮助。谢谢,没问题。记住选择它作为正确答案。