Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Can't get a game loop to work in Android Studio

So I understand the basics of java programming but when I’m trying to use my little knowledge in android studio it make everything harder having classes and different files needing to be referenced. Coming from python, when making a simple game I would define different functions, then run them in a game loop like

while running:

or something similar. I know to define something in java you go like

public void Example() {}

but when I use this in java, when I try to run the program my game either instantly crashes or doesnt load anything.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

The code at the moment is

public class MainActivity extends AppCompatActivity {

    //Variables
    Boolean running = true;
    public int years = 0;

    //Setup Year Counter
    TextView textView = (TextView) findViewById(R.id.year_counter);


    //Advance Button
    public void advance() {
        ImageButton button = (ImageButton) findViewById(R.id.advance);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                years += 1;
                textView.setText("" + years + "");
            }
        });
    }

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

        //Game Loop
        while (running) {
            advance();

        }


    }
}


And this results in the app not opening.
Any help at all would mean a lot to me.
Thanks in advance 🙂

>Solution :

Although I don’t actually see a crash, since you didn’t really upload one, I can see why you might think your app wont work.

What you are doing constantly in the while loop is that you are only setting the button’s click listener over and over again.

public class MainActivity extends AppCompatActivity {

    //Variables
    Boolean running = true;
    public int years = 0;

    //Setup Year Counter
    TextView textView;
    ImageButton button;


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

        // you set up your views once, after the layout is inflated
        setUpViews();
        
        // you initialize your buttons functionality
        initClickEvents();

        //Game Loop
        while (running) {
            // do other stuff
        }
    }
    
    private void setUpViews() {
        textView = (TextView) findViewById(R.id.year_counter);
        button = (ImageButton) findViewById(R.id.advance);
    }
    
    private void initClickEvents() {
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                years += 1;
                textView.setText("" + years + "");
            }
        });
    }
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading