2014-10-30 67 views
-3

是否可以从另一个void访问ArrayList,然后在Java中生成它? (我在做Android应用程序,我没有砍伐大量的代码)如何从其他无效访问ArrayList然后它在Java中生成?

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")) { 

     } 
    } 

} 

有没有一种方法,使在类访问处处ArrayList的?再次,我正在开发一个android应用程序,所以我确实减少了一些代码。

+2

你是什么意思的“其他空白”?你能发布一些相关的代码吗? – Eran 2014-10-30 06:44:11

+4

如果你没有时间写一个体面的问题,你不应该发表任何问题。等到你*有*时间,然后阅读http://tinyurl.com/stack-hints(听起来你应该有一个实例变量,你现在有一个局部变量,但这只是一个猜测时刻...) – 2014-10-30 06:45:37

+0

@JonSkeet我编辑了这个问题。 – nelson2tm 2014-10-31 11:08:14

回答

1

您目前在onCreate方法中将questionid声明为局部变量。该变量仅在该方法调用期间存在。你想要一个变量变量 - 即某些是对象状态的一部分,并且在所有方法中都可用。

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); 
     ... 
    } 
}