java - 我是否需要创建另一个活动来显示一些信息?(安卓) (Java)
问题描述
嗨,我是一个 android 初学者,只是想弄清楚,
现在我被困了几天,想知道如何创建 1 个活动并根据用户选择的按钮更改其内容。
所以我正在构建一个小项目,它是一个急救应用程序,其中至少有 15-25 个按钮列表,可以显示不同类型的急救教程。实现这一点的最佳方法是什么?
到目前为止,我已经设法创建了一个按钮列表,将用户引导到另一个活动 。
单击刻录按钮后,将弹出这些步骤,每个步骤都是可点击的,并将用户引导至另一个活动,该活动将使用图像和视频详细说明该步骤
我已经尝试使用 1 个活动并使用发送信息,intent.putExtra()
但是问题是我无法更改每个步骤的按钮目标(详细说明部分),它更改了每个步骤的信息,但是当它被单击时。它只是将我引向(烧伤步骤)的相同详细说明部分。
我确信有更好的方法来实现这一点,而不是为每个单击的按钮创建另一个活动,只显示很少的信息。任何帮助将不胜感激请注意,我真的只是一个初学者,内容丰富的解释将真正帮助我很多谢谢。
代码(list_of_firstAid.java):
buttonBurns.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), burnsActivity.class);
intent.putExtra("procedure_1", getResources().getString(R.string.burns_procedure_1));
intent.putExtra("procedure_2", getResources().getString(R.string.burns_procedure_2));
intent.putExtra("procedure_3", getResources().getString(R.string.burns_procedure_3));
intent.putExtra("procedure_4", getResources().getString(R.string.burns_procedure_4));
intent.putExtra("procedure_5", getResources().getString(R.string.burns_procedure_5));
intent.putExtra("note_procedure_1", getResources().getString(R.string.burns_note_1));
startActivity(intent);
}
});
代码:(burnsActivity.java)
public void process(View view){
if(view.getId() == R.id.burnsStep1)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_1_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk2);
intent.putExtra("step_2", "this is step 2");
startActivity(intent);
}
else if(view.getId() == R.id.burnsStep2)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_2_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk3);
intent.putExtra("step_2", "");
startActivity(intent);
}
else if (view.getId() == R.id.burnsStep3)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_3_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk5);
intent.putExtra("step_2", getResources().getString(R.string.firstaid_burnsactivity_information_number_3_bullet_2));
startActivity(intent);
}
else if (view.getId() == R.id.burnsStep4)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_4_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk5);
intent.putExtra("step_2", getResources().getString(R.string.firstaid_burnsactivity_information_number_4_bullet_2));
startActivity(intent);
}
else if (view.getId() == R.id.burnsStep5)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_5_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk5);
intent.putExtra("step_2", getResources().getString(R.string.firstaid_burnsactivity_information_number_5_bullet_2));
startActivity(intent);
}
else if (view.getId() == R.id.burnsNote1)
{
Intent intent = new Intent(burnsActivity.this, displayInfoActivity.class);
intent.putExtra("step_1", getResources().getString(R.string.firstaid_burnsactivity_information_number_6_bullet_1));
intent.putExtra("image_1", R.drawable.round_bk5);
intent.putExtra("step_2", getResources().getString(R.string.firstaid_burnsactivity_information_number_6_bullet_2));
startActivity(intent);
}
编辑:上面的代码将更改每个步骤的信息。但是,这些步骤也可以单击。因此,当我重用此活动进行出血(例如)并更改每个步骤的文本时,它可以工作,但是当单击它时,它会显示与我放在burnsActivity 上的相同信息。
解决方案
我也是一名初级 Android 开发人员,我曾开发过一个与您的非常相似的应用程序。
结构
您应该在模型、视图和控制器层中分离您的项目,以使其更易于开发和维护。
模型
模型由两个名为AidTool
和的类组成AidBox
。
AidTool
- 它代表一个单一的辅助工具。它应该包含工具的名称及其教程。为每个工具分配一个 UID,这将在以后为您提供帮助。
AidBox
- 它将所有辅助工具存储在一个ArrayList
. 它应该包含检索任何工具的方法。
看法
View 由一个活动组成,该活动ToolList
将显示每个辅助工具。我建议您使用RecyclerView
显示每个辅助工具的名称并处理它们上的任何点击事件。
控制器
控制器由单个活动组成ToolTutorial
。单击 上的任何辅助工具后ToolList
,开始活动ToolTutorial
。它应该使用一个额外的命名工具 UID,用于显示工具教程。
我没有提供很多细节。我刚刚提供了应用程序的整体结构。使用模型层,您可以只使用单个活动来显示任何辅助工具的教程。您还应该研究singletons。如果您使用此结构,它可能会对您的应用程序有所帮助。
我希望我对你有所帮助。
推荐阅读
- mongodb - MongoDB $in 内 $cond
- python - 在 Django 中搜索期间分页不起作用
- jquery - 在两列布局中切换特定列?
- android - 如何清除/删除 Webview 的 Web 存储
- python-3.x - Gtk.PrintOperation.run () 没有响应
- haskell - Stack 坚持构建 Cabal 包
- javascript - 如何在 phpMyAdmin 中调用和显示数据库
- django - Django 将表单实例保存到不同的数据库
- macos - 需要 brew 覆盖 /usr/local/etc/httpd/
- php - 无法与子域共享 cookie