Обновить активность в Android Studio - PullRequest
0 голосов
/ 04 апреля 2020

Не могли бы вы помочь мне об этой игре, которую я создал, я хочу перезагрузить ту же активность , как перезапустить игру в игру викторины . Я надеюсь, что вы, ребята, можете мне помочь, вот код:

package com.example.splash;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.LinearLayoutCompat;
import androidx.core.widget.ImageViewCompat;

import android.content.Intent;
import android.media.Image;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.MediaStore;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class stagenumbereasy1 extends AppCompatActivity {

    Button congratsback,congratshome,congratsforward,reload;
    ImageView congrats,tryagain;
    Animation fromsmall,fromnothing;
    MediaPlayer click,congrats1,die;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_stagenumbereasy1);



        click = MediaPlayer.create(this, R.raw.click);
        congrats1 = MediaPlayer.create(this, R.raw.congrats);
        die = MediaPlayer.create(this, R.raw.die);

        final Button butt8=(Button)findViewById(R.id.button8);
        final Button butt9=(Button)findViewById(R.id.button9);
        final Button butt10=(Button)findViewById(R.id.button10);
        final Button butt11=(Button)findViewById(R.id.button11);
        final Button back=(Button)findViewById(R.id.button12);

        final LinearLayout overbox=(LinearLayout)findViewById(R.id.overbox);
        final LinearLayout congratsbox=(LinearLayout)findViewById(R.id.congratsbox);
        final LinearLayout tryagainbox = (LinearLayout)findViewById(R.id.tryagainbox);
        final LinearLayout trybox=(LinearLayout)findViewById(R.id.trybox);

        fromsmall = AnimationUtils.loadAnimation(this, R.anim.fromsmall);
        fromnothing = AnimationUtils.loadAnimation(this, R.anim.fromnothing);

        congratsbox.setAlpha(0);
        overbox.setAlpha(0);
        tryagainbox.setAlpha(0);
        trybox.setAlpha(0);




        congratsback=(Button)findViewById(R.id.congratsback);
        congratshome=(Button)findViewById(R.id.congratshome);
        congratsforward=(Button)findViewById(R.id.congratsforward);


        congrats=(ImageView)findViewById(R.id.congrats);

        reload=(Button)findViewById(R.id.reload);

        tryagain=(ImageView)findViewById(R.id.try1);


        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent back=new Intent (stagenumbereasy1.this,stagenumber.class);
                click.start();
                startActivity(back);
            }
        });

        butt8.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                click.start();
                congrats1.start();
                butt8.setEnabled(false);
                butt9.setEnabled(false);
                butt10.setEnabled(false);
                butt11.setEnabled(false);
                back.setEnabled(false);
                overbox.setAlpha(1);
                overbox.startAnimation(fromnothing);
                congratsbox.setAlpha(1);
                congratsbox.startAnimation(fromsmall);
            }
        });

        congratshome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent home = new Intent(stagenumbereasy1.this, Home.class);
                click.start();
                startActivity(home);
            }
        });

        congratsforward.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent easy2 = new Intent(stagenumbereasy1.this, stagenumbereasy2.class);
                click.start();
                startActivity(easy2);
            }
        });

        butt9.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                click.start();
                die.start();
                butt8.setEnabled(false);
                butt9.setEnabled(false);
                butt10.setEnabled(false);
                butt11.setEnabled(false);
                back.setEnabled(false);
                trybox.setAlpha(1);
                trybox.startAnimation(fromnothing);
                tryagainbox.setAlpha(1);
                tryagainbox.startAnimation(fromsmall);

                reload.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        Intent reload = new Intent(stagenumbereasy1.this, stagenumbereasy1reload.class);
                        click.start();
                        startActivity(reload);
                        finish();
                    }
                });
            }
        });



        butt10.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                click.start();
                die.start();
                butt8.setEnabled(false);
                butt9.setEnabled(false);
                butt10.setEnabled(false);
                butt11.setEnabled(false);
                back.setEnabled(false);
                trybox.setAlpha(1);
                trybox.startAnimation(fromnothing);
                tryagainbox.setAlpha(1);
                tryagainbox.startAnimation(fromsmall);

                reload.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        Intent reload = new Intent(stagenumbereasy1.this, stagenumbereasy1reload.class);
                        click.start();
                        startActivity(reload);
                        finish();
                    }
                });

            }
        });





        butt11.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                click.start();
                die.start();
                butt8.setEnabled(false);
                butt9.setEnabled(false);
                butt10.setEnabled(false);
                butt11.setEnabled(false);
                back.setEnabled(false);
                trybox.setAlpha(1);
                trybox.startAnimation(fromnothing);
                tryagainbox.setAlpha(1);
                tryagainbox.startAnimation(fromsmall);

                reload.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent refresh = new Intent(stagenumbereasy1.this, stagenumbereasy1reload.class);
                        click.start();
                        startActivity(refresh);
                        finish();
                    }
                });

            }
        });


    }
}

Изображение моей игры

Я фактически создаю другое действие, чтобы это произошло, но когда я нажмите кнопку reload, чтобы вернуться домой. Это моя дипломная игра.

Ответы [ 3 ]

0 голосов
/ 04 апреля 2020

Вы можете попробовать recreate();, который воссоздает действие

Вы также можете попробовать Intent intent = new Intent(MyActivity.this, MyActivity.class); startActivity(intent);

0 голосов
/ 04 апреля 2020

Просто используйте намеренные флаги, один из которых INTENT_FLAGS_NEW_TASK, он перезапускает действие Intent.setflags (). В текущей деятельности вы вызываете его Intent (main.this, main.class)

0 голосов
/ 04 апреля 2020

Я не знаю, существует ли рекомендуемый ответ в Android документах. Но, я думаю, вы можете вызвать startActivity() и finish(), например:

// Java
startActivity(new Intent(MyActivity.class));
finish();
// Kotlin
startActivity(Intent(MyActivity::java.class));
finish();

Это создаст новый экземпляр действия и уничтожит текущий. Для лучшей производительности вы должны сделать тесты с Фрагментами вместо сброса Действия.

...