Без AppCompatActivity метод отказывается работать

252
10 октября 2017, 02:24

Я хочу использовать диалоговое окно в текущем activity, но дело в том,что данный класс уже имеет наследника YouTubeBaseActivity, из-за этого отказывается работать метод dialog.show(getSupportFragmentManager(), "custom"); а именно getFragmentManager() Он требует чтобы была библиотека import android.support.v7.app.AppCompatActivity;

Возможно ли как-то это проблему решить?

public class PlayVideoYouTube extends YouTubeBaseActivity implements YouTubePlayer.OnInitializedListener {
    private TextView textView3;
    private String a;
    private YouTubePlayer player;
    private static final int RECOVERY_REQUEST = 1;
    private YouTubePlayerView youTubeView;
    private FragmentManager supportFragmentManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.start_video_youtube);
        youTubeView = (YouTubePlayerView) findViewById(R.id.youtube_view);
        youTubeView.initialize(Config.YOUTUBE_API_KEY, this);
    }
    @Override
    public void onInitializationSuccess(Provider provider, YouTubePlayer player, boolean wasRestored) {
        this.player = player;
        if (!wasRestored) {
            player.cueVideo("RJmZBs4MDqU"); // Plays https://www.youtube.com/watch?v=fhWaJi1Hsfo
           a = String.valueOf(player.getCurrentTimeMillis()); //Получаем текущее время
        }
    }
    @Override
    public void onInitializationFailure(Provider provider, YouTubeInitializationResult errorReason) {
        if (errorReason.isUserRecoverableError()) {
            errorReason.getErrorDialog(this, RECOVERY_REQUEST).show();
        } else {
            String error = String.format(getString(R.string.player_error), errorReason.toString());
            Toast.makeText(this, error, Toast.LENGTH_LONG).show();
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == RECOVERY_REQUEST) {
            // Retry initialization if user performed a recovery action
            getYouTubePlayerProvider().initialize(Config.YOUTUBE_API_KEY, this);
        }
    }
    protected Provider getYouTubePlayerProvider() {
        return youTubeView;
    }
    public void rezult(View v)   {
        textView3 = (TextView) findViewById(R.id.textT);
        a =String.valueOf(((float) player.getCurrentTimeMillis() / 1000.0) / 60.0);
        textView3.setText(a);
        //4. Создаем всплывающий Toast с текстом нажатого элемента
        String language = ((TextView) v).getText().toString();
        Toast.makeText(this, language, Toast.LENGTH_LONG).show();
        CustomDialogFragment dialog = new CustomDialogFragment();
        Bundle args = new Bundle();
        args.putString("phone", "Передача данных....");
        dialog.setArguments(args);
        dialog.show(getSupportFragmentManager(), "custom");
                       ^^//Ошибка Cannot resolve method 'getSupportFragmentManager()
    }   
}
Answer 1

Чтобы использовать библиотеку android.support.v7, тогда необходимо наследовать свою активити от AppCompatActivity, а внутри ее использовать классы YouTubePlayerFragment или YouTubePlayerSupportFragment, в зависимости от ваших нужд.

В этом случае наследоваться от YouTubeBaseActivity вообще не нужно.

READ ALSO
Как создать глобальный массив?

Как создать глобальный массив?

Мне надо закинуть строки в массив, который был создан в классе

478
Массив через цикл

Массив через цикл

как можно через один цикл for печатать несколько массивов

270
Как работают операторы сравнения И, ИЛИ, исключающее ИЛИ и НЕ в Java? [требует правки]

Как работают операторы сравнения И, ИЛИ, исключающее ИЛИ и НЕ в Java? [требует правки]

Обычно в книгах дается таблица с начальными данными, например p = true, q = false и между ними проводятся операции сравненияСами значения переменных...

231