Random Activity Without Repetition
I already read hundreds of posts here about it but none is adapted to my simple needs. NOOB ALERT. I'm trying to have a notification in my app choose from a list of activities and
Solution 1:
Look man, try something like this:
ArrayList<Class> activities = new ArrayList<>();
activities.add(Activity01.class);
activities.add(Activity02.class);
activities.add(Activity03.class);
activities.add(Activity04.class);
activities.add(Activity05.class);
activities.add(Activity06.class);
activities.add(Activity07.class);
activities.add(Activity08.class);
activities.add(Activity09.class);
activities.add(Activity10.class);
Button randomBtn;
randomBtn = (Button) findViewById(R.id.randomBtn);
randomBtn.setOnClickListener(new View.OnClickListener() {
@Override
publicvoidonClick(View v) {
if(activities.size == 0){
//create a method that instantiate again the Activities and add to the list;
}
Collections.shuffle(activities);
Activity activityToShow = activities.get(0);
Intent intent = new Intent(MainActivity.this, activityToShow);
activities.remove(0);
startActivity(intent);
}
});
Solution 2:
For future reference, here's the code that I used, thanks to @PedroFernandes, and works for my situation:
public classMainActivityextendsAppCompatActivity {
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Class> activities = newArrayList<>();
activities.add(Activity01.class);
activities.add(Activity02.class);
activities.add(Activity03.class);
activities.add(Activity04.class);
activities.add(Activity05.class);
activities.add(Activity06.class);
activities.add(Activity07.class);
activities.add(Activity08.class);
activities.add(Activity09.class);
activities.add(Activity10.class);
Button randomBtn;
randomBtn = (Button) findViewById(R.id.randomBtn);
randomBtn.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View v) {
if (activities.size()==0){
activities.add(Activity01.class);
activities.add(Activity02.class);
activities.add(Activity03.class);
activities.add(Activity04.class);
activities.add(Activity05.class);
activities.add(Activity06.class);
activities.add(Activity07.class);
activities.add(Activity08.class);
activities.add(Activity09.class);
activities.add(Activity10.class);
}
Collections.shuffle(activities);
Class activityToShow = activities.get(0);
Intent intent = newIntent(MainActivity.this, activityToShow);
activities.remove(0);
startActivity(intent);
}
});
}
}
Post a Comment for "Random Activity Without Repetition"