我在我的应用程序中有9个活动(它可以增加超过这个不是固定值)我点击按钮我想随机开始活动。喜欢
Activity 1 -> Activity ->3 and so on.
如果用户点击后退按钮我想完成当前活动并重新开始一项新活动,则该用户尚未访问过..
那我怎么能这样做呢。
对于随机活动,我试过这种方式
Random rnd = new Random();
int x=rnd.nextInt(9)+1;
Intent myIntent = new Intent();
switch(x){
case 1:
myIntent.setClass(view.getContext(),Scrn1.class);
break;
case 2:
myIntent.setClass(view.getContext(), Scrn2.class);
break;
case 3:
myIntent.setClass(view.getContext(), Scrn1.class);
break;
}
但我不知道如何开始用户尚未访问过的新活动
答案 0 :(得分:2)
我用过它:
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Random rnd = new Random();
int x=rnd.nextInt(9)+1;
switch(x){
case 1:
Intent intent=new Intent(v.getContext(), Scrn1.class);
startActivityForResult(intent1, 0);
break;
case 2:
Intent intent1=new Intent(v.getContext(), Scrn2.class);
startActivityForResult(intent2, 0);
break;
...
case 8:
Intent intent2=new Intent(v.getContext(), Scrn8.class);
startActivityForResult(intent8, 0);
break;
case 9:
Intent intent2=new Intent(v.getContext(), Scrn9.class);
startActivityForResult(intent9, 0);
break;
}
} });
答案 1 :(得分:1)
最简单的方法是使用SharedPreferences来跟踪已启动的活动。例如,您可以使用类名或某些唯一活动的id存储数组。在开始新活动之前,您需要阅读数组,查看已启动的内容,选择新的活动类,更新首选项中的数组并启动新活动。
答案 2 :(得分:0)
你应该处理onbackpress方法,在方法中完成你现在的活动并调用你的随机活动函数,它会重定向..
答案 3 :(得分:0)
保留一个arraylist,它保留已经启动的活动编号。所以下次如果您的随机数来自该列表,则只需丢弃并再次生成该数字。
您的代码看起来不错,您需要集成此逻辑
答案 4 :(得分:0)
可能这对你有用。 假设有4项活动。
Random rnd = new Random();
int[] activitiesVisited = new int[] {0,0,0,0};
int x=rnd.nextInt(9);
while(activitiesvisited[x] == 1) {
x=rnd.nextInt(9);
}
Intent myIntent = new Intent();
switch(x){
case 1:
myIntent.setClass(view.getContext(),Scrn1.class);
activitiesVisited[0] = 1;
break;
case 2:
myIntent.setClass(view.getContext(), Scrn2.class);
activitiesVisited[1] = 1;
break;
case 3:
myIntent.setClass(view.getContext(), Scrn3.class);
activitiesVisited[2] = 1;
break;
case 4:
myIntent.setClass(view.getContext(), Scrn4.class);
activitiesVisited[3] = 1;
break;
}