I'm a little confused about when a variable or a method should be static. I've developed an app with several classes, variables and methods, and very rarely use the keyword static. Yet it works satisfactorily. Could you tell me if I make mistakes and why. Here is a sample of my code:

```
public class GameActivity extends AppCompatActivity {

public String[] mots = {"AFTERNOON", "AIRPORT","AVENUE","BETWEEN", "BUS", "CAB", "COAST","DAY",
        "DIFFERENCE","DOLLARS","ENGLISH","FRENCH","GOOD","GOODBYE","HOUR","IMPROVE","LATER",
        "LOCAL","MARGARET","NAME","NINE","NUMBER","ONLY","PHONE","PLANE","SAME","SHARE",
        "SIDEWALK","STATES","SUNDAY","THERE","TIME","TWELVE","UNITED","UNIVERSITY","VERY",
        "WEST","WHEN","WOMAN","YOUNG"};

public String[] alphabet = {"A","B","C","D","E","F","G","H","I","J","K","L","M",
        "N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};

public String mysteryWord = "vide";
//public int nombreDeLettres;

public int numeroImage = 1;
public boolean jeuFini = false;
public int lettresDevinees = 0;
public int wins = 0;
public int losses = 0;

public int numberOfMots;
int numeroAuHasard;
public Boolean maLettreAServi = false;
public ArrayList<CharSequence> lettresEssayees = new ArrayList<>();

public Button monBouton;
public TextView monTextView;

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

    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest request = new AdRequest.Builder()
            .addTestDevice("AC98C820A50B4AD8A2106EDE96FB87D4")  // adds my test phone
            .build();
    mAdView.loadAd(request);

    // une des solutions pour rendre la zone trado scrollable
    TextView myXmlContent = (TextView)findViewById(R.id.zone_trado_scrollable);
    myXmlContent.setMovementMethod(new ScrollingMovementMethod());

    // écouteurs de tous les boutons actifs
    ecouteursDeBoutons();

}

// joue une lettre
public void playLetter(final String letter) {

    Resources res = getResources();
    final int resId = res.getIdentifier(letter, "id", getPackageName());
    monTextView = (TextView) this.findViewById(R.id.zone_trado_scrollable);

    final TextView maLettre = (TextView) this.findViewById(resId);
    maLettre.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (!jeuFini) { // il faut mettre ce test _dans_ le onClick(View v)

                if (!mysteryWord.equalsIgnoreCase("vide")) {

                    if (!lettresEssayees.contains(maLettre.getText())) {
                        // on teste que la lettre n'a pas déjà été essayée

                        maLettreAServi = false;

                        // boucle de test de lettre
                        for (int i = 0; i < mysteryWord.length(); i++) {
                            if (String.valueOf(mysteryWord.charAt(i)).equals(maLettre.getText())) {

                                int j = i + 1; // car dans le layout xml les id des positions commencent à 1

                                //monTextView.append("\nyou correctly found " + maLettre.getText() + " at position " + j);

                                final int resId = getResources().getIdentifier("position" + j, "id", getPackageName());
                                final TextView lettreADeviner = (TextView) GameActivity.this.findViewById(resId);
                                lettreADeviner.setText(maLettre.getText());

                                maLettreAServi = true;

                                lettresDevinees++;
                            }
                        }

                        maLettre.setText(""); // on efface de l'alphabet la lettre essayée

                        lettresEssayees.add(maLettre.getText());
                        // on la met dans l'arraylist lettresEssayees
                        // afin de ne pas la réessayer
                        // noter que java comprend qu'il s'agit d'un caractère et non d'une string

                        // test pour effacer de l'alphabet une lettre qui a servi
                        if (!maLettreAServi) {

                            // incrémenter le pendu
                            numeroImage++;

                            if (numeroImage < 10) {
                                ImageView monImage = (ImageView) findViewById(R.id.imagePendu);
                                final int imageId = getResources().getIdentifier("pendu" + numeroImage, "drawable", getPackageName());
                                monImage.setImageResource(imageId);
                            } else {
                                ImageView monImage = (ImageView) findViewById(R.id.imagePendu);
                                final int imageId = getResources().getIdentifier("pendu10", "drawable", getPackageName());
                                monImage.setImageResource(imageId);

                                jeuFini = true;
                                monTextView.setText(Html.fromHtml("<font color=\"red\">you lost</font>"));
                                monTextView.append("\nthe word was "+mysteryWord);

                                losses++;
                                TextView nombrePertes = (TextView) findViewById(R.id.nr_losses);
                                nombrePertes.setText("" + losses); // pas réussi à utiliser toString(), alors j'utilise cette converstion
                            }
                        }

                        // test qu'on a trouvé le mot mystère
                        if (lettresDevinees == mysteryWord.length()) {
                            jeuFini = true;

                            // randomisation des félicitations
                            Random generator = new Random();
                            int randomIndex = generator.nextInt(3);

                            if(randomIndex == 0){
                            monTextView.setText(Html.fromHtml("<font color=\"blue\">bravo!</font>"));}

                            else if(randomIndex == 1){
                            monTextView.setText(Html.fromHtml("<font color=\"blue\">fantastic!</font>"));}

                            else if (randomIndex == 2) {
                            monTextView.setText(Html.fromHtml("<font color=\"blue\">you won</font>"));}

                            // rappel de ce qu'était le mot à deviner
                            monTextView.append("\nthe word was indeed " + mysteryWord);

                            String son = mysteryWord.toLowerCase()+"1";

                            final int resRaw = getResources().getIdentifier(son, "raw", getPackageName());
                            final MediaPlayer mp = MediaPlayer.create(GameActivity.this, resRaw);
                            mp.start();

                            wins++;
                            TextView nombreGains = (TextView) findViewById(R.id.nr_wins);
                            nombreGains.setText("" + wins); // pas réussi à utiliser toString(), alors j'utilise cette converstion
                        }
                    }

                } else {
                    monTextView.setText("click on Select word first");
                }
            }
        }
    });
}

...

}

```