Android (Java) Деятельность, которая выбирает, какой фрагмент использовать - PullRequest
2 голосов
/ 12 марта 2019

Я пытаюсь найти способ, чтобы моя активность решала, какой фрагмент выбрать.У меня есть список фрагментов, и когда вы нажимаете на любой из них, все они отображают одно и то же.Я хочу иметь возможность отображать мои 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 - третьим, а затем повторялся.

Я следил за книгой по программированию ранчо Big Nerd, поэтому она очень похожа наПриложение CriminalIntent.Любая помощь приветствуется.

1 Ответ

1 голос
/ 12 марта 2019

Вы открываете только WorkoutFragment1.Вы можете создавать другие фрагменты.И вы должны проверить свою деятельность, как это.

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

    Log.d("createFragment UUID", workoutId.toString());
    if(workoutId==idOfWorkoutFragment1){
       return WorkoutFragment1.newInstance();
    }else if(...){
    ....
    ....
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...