Reputation: 163
I have a private method like this
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);
}
}
i call that method in oncreate
and test by button click to show list value with a toast like this :
@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();
}
});
The Question is why the toast show null
when I put it inside a method , instead showing "0,1,2,3,4" ?
I tested my code without a method (put it raw inside oncreate event and it worked...)
Upvotes: 2
Views: 667
Reputation: 5260
please have a look at acaknomor method
private void acaknomor() {
List<Integer> generated = new ArrayList<Integer>();....
use generated = new ArrayList<Integer>();
and make List<Integer> generated =null;
Global which will help you on this issue
Upvotes: 1
Reputation: 8134
Instead of this:
List<Integer> generated = new ArrayList<Integer>();
Use
generated = new ArrayList<Integer>();
And declare List<Integer> generated
for your activity
Upvotes: 1
Reputation: 29632
Your are declaring List<Integer> generated = new ArrayList<Integer>();
in side the method acaknomor()
. So it is not visible for the Toast.
I suggest you to declare it at class level.
private List generated;
Now inside the the acaknomor()
private void acaknomor() {
generated = new ArrayList<Integer>(); // Modify this line
for (int i = 0; i <= 4; i++) {
...
Upvotes: 5