How to access arraylist from an other void then it is generated in in Java?

Is it possible to access an arraylist from another void then it is generated in in Java? (I'm making an android app, i did cut down the code massively)

package com.example.example;

import ...;

public class Example {

    @Override
    protected void onCreate(Bundle savedInstanceState) {        
//android things here...
        ArrayList<String> questionid = new ArrayList<String>();
        questionid.add("1");
        questionid.add("2");
        questionid.add("3");
        questionid.add("4");
        questionid.add("5");
        questionid.add("6");
        questionid.add("7");
        questionid.add("8");
        questionid.add("9");
        questionid.add("10");
        Collections.shuffle(questionid, new Random(System.nanoTime()));
}

    private void newQuestion() {
        questionid.get(0); //<-- It doesn't find the arraylist questionid
        }
    }

    private void setNewQuestion() {
        TextView questionnumberlabel;
        questionnumberlabel = (TextView) findViewById(R.id.questionnumber);
        if (questionnumberlabel.getText().equals("1")) {

        }
    }

}

Is there a way to make the arraylist accessible everywhere in the class? Again, i'm developing an app for android, so i did cut down the code a bit.

Jon Skeet
people
quotationmark

You've currently declared questionid as a local variable in the onCreate method. That variable only exists for the duration of that method call. You want an instance variable - i.e. something which is part of the state of the object, and which is available within all methods.

public class Example {
    private ArrayList<String> questionid;

    @Override
    protected void onCreate(Bundle savedInstanceState) {        
        questionid = new ArrayList<String>();
        questionid.add("1");
        ...
    }

    private void newQuestion() {
        String firstQuestion = questionid.get(0);
        ...
    }
}

people

See more on this question at Stackoverflow