首页 > 解决方案 > 选择使用哪个片段的 Android (Java) Activity

问题描述

我试图找出一种方法让我的 Activity 决定选择哪个片段。我所拥有的是一个片段列表,当您单击其中任何一个时,它们都会显示相同的内容。我希望能够显示我从一个开始到最后一个的 3 个不同片段,基本上只是一遍又一遍地重复 3 个片段。

我的活动代码如下所示

package com.example.ddursteler1.workouttracker;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;

import java.util.List;
import java.util.UUID;

public class WorkoutActivity extends SingleFragmentActivity {

    public static final String EXTRA_WORKOUT_ID = "com.example.ddursteler1.workouttracker.workout_id";

    private static UUID mUUID;


    public static Intent newIntent(Context packageContext, UUID workoutId) {
        Intent intent = new Intent(packageContext, WorkoutActivity.class);
        intent.putExtra(EXTRA_WORKOUT_ID, workoutId);
        return intent;
    }

    @Override
    protected Fragment createFragment() {
        UUID workoutId = (UUID) getIntent().getSerializableExtra(EXTRA_WORKOUT_ID);

        Log.d("createFragment UUID", workoutId.toString());
        return WorkoutFragment1.newInstance(workoutId);
    }
}

我希望 WorkoutFragment1 成为片段列表中的第一项,WorkoutFragment2 第二项,WorkoutFragment3 第三项,然后重复。

我一直在关注 The Big Nerd Ranch 编程书,所以它与CriminalIntent 应用程序非常相似。任何帮助表示赞赏。

标签: javaandroidandroid-fragments

解决方案


您只打开 WorkoutFragment1。您可以创建其他片段。你应该像这样检查你的活动。

    UUID workoutId = (UUID) 
    getIntent().getSerializableExtra(EXTRA_WORKOUT_ID);

    Log.d("createFragment UUID", workoutId.toString());
    if(workoutId==idOfWorkoutFragment1){
       return WorkoutFragment1.newInstance();
    }else if(...){
    ....
    ....
    }

推荐阅读