为什么oncreate事件中的方法不起作用?

stu*_*ght 2 methods android

我有这样的私人方法

private void acaknomor() {
    List<Integer> generated = new ArrayList<Integer>();
    for (int i = 0; i <= 4; i++) {
        while (true) {
            Integer next = ran.nextInt(4 + 1) + 0;
            if (!generated.contains(next)) {
                generated.add(next);
                break;
            }
        }
    }
    int[] arrayAcak = new int[generated.size()];
    for (int i = 0; i < generated.size(); i++) {
        arrayAcak[i] = generated.get(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

我调用该方法oncreate并通过按钮单击测试以显示列表值,如下所示:

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

    acaknomor();

    btn_next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), String.valueOf(generated), Toast.LENGTH_SHORT).show();
        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是为什么null当我把它放在一个方法中时吐司显示,而是显示" 0,1,2,3,4 "?

我在没有方法的情况下测试了我的代码(把它放在oncreate事件中并且它工作了......)

Luc*_*fer 5

你正在宣传 List<Integer> generated = new ArrayList<Integer>();方法acaknomor().因此Toast不可见.

我建议你在班级宣布.

私人名单生成;

现在里面了 acaknomor()

private void acaknomor() {
    generated = new ArrayList<Integer>();           // Modify this line
    for (int i = 0; i <= 4; i++) {
    ...
Run Code Online (Sandbox Code Playgroud)