我有这样的私人方法
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事件中并且它工作了......)
你正在宣传 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)