Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在数组中存储活动_Android_Android Activity - Fatal编程技术网

Android 在数组中存储活动

Android 在数组中存储活动,android,android-activity,Android,Android Activity,我正在开发一个测验应用程序,当用户按下“下一步”按钮时,他将进入下一个问题的另一个活动。此外,它还将有一个“上一个”按钮,用于转到上一个问题。所以我想的是将所有活动存储在一个数组中(如果可能的话)。稍后,当我需要在应用程序中添加或删除问题时,我只需更改数组并删除其活动文件。这真是个糟糕的主意。相反,在用户选择问题活动的活动中,通过意图传递数据,并处理接收者活动本身中的逻辑。像这样: Intent j = new Intent (this, QuestionsActivity.class/*

我正在开发一个测验应用程序,当用户按下“下一步”按钮时,他将进入下一个问题的另一个活动。此外,它还将有一个“上一个”按钮,用于转到上一个问题。所以我想的是将所有活动存储在一个数组中(如果可能的话)。稍后,当我需要在应用程序中添加或删除问题时,我只需更改数组并删除其活动文件。

这真是个糟糕的主意。相反,在用户选择问题活动的活动中,通过意图传递数据,并处理接收者活动本身中的逻辑。像这样:

 Intent j = new Intent (this, 
 QuestionsActivity.class/*whatever your activity's name 
 is */);
 j.putExtra("questionNumber",13/*Arbitrary number*/);
 startActivity(j);
然后在活动中……
if(getIntent().getIntExtra(“问题编号”)==13)
//在这里做你想做的事

你永远不应该维护对多个活动的引用。Android系统可能会在任何时候决定销毁某个活动,您的引用将不再有效

相反,您应该将问题的模型与它们在活动中的显示方式分开。您可以向活动发送数据,例如问题的某个标识符,甚至问题的文本。活动子类应该是通用的,因为它可以显示任何问题。这允许您为所有问题创建一个活动,而不是为每个问题创建一个活动


您可以保留一个问题数组而不是活动数组,然后根据需要使用该数组来显示正确的信息。

如果您更改活动,这意味着您将有一个新的“下一步”按钮和一个新的onClickListner,那么为什么不为所有活动的每个下一步按钮执行onClick!!这是一个非常糟糕的主意…有史以来最糟糕的主意。您只需要一个活动和一系列问题/答案。如果你有一个有100个问题的测验应用程序,那就是100个活动。对于android应用程序或任何应用程序来说,可能是最糟糕的事情。我建议你这样想。当用户按下下一步或上一步按钮时,我希望屏幕发生变化。为此,我需要一个新的活动。这也是一个实践项目,所以我在学习,我想这样做!如果你想练习,那么你应该真正练习用正确的方式而不是你自己的方式。如果您希望在用户单击“下一步”时出现“新屏幕”,那么您所需要做的就是使用列表中的新问题更新当前活动。在这里你永远不会得到你想要的答案。