【问题标题】:Am I creating my android app properly? Will it affect performance in any way?我是否正确创建了我的 android 应用程序?它会以任何方式影响性能吗?
【发布时间】:2016-06-16 15:35:03
【问题描述】:

所以基本上我的应用程序是这样工作的。有一个物理方程列表可供选择。每个方程(即:Vf = Vi+at)都有自己的整个活动(同时使用 xml 和 java)。下面是一个方程的活动外观示例:

(http://i.imgur.com/Jx1VIVX.jpg)

假设我想为我的应用创建 100 个方程式。 我是否也必须创建 100 个单独的活动?

-如果是,会不会影响性能,apk文件的大小会增加多少?有没有一种简单的方法可以将活动分类到目录中? -如果没有,那我如何将这“100 个单独的活动”组合成更少的活动?

到目前为止,我只完成了 3 个方程式,并且为每个方程式创建了一个单独的活动。这是选择页面的外观。

(http://i.imgur.com/M3J332n.jpg)

示例: 如果我从微调器中选择“求解最终速度”选项,它将执行以下命令并打开所选方程式的活动。

//What happens when user chooses a category
 if(position == 1){
 startActivity(vf);

【问题讨论】:

  • 欢迎您拥有 100 个布局,绝对不是 100 个活动
  • 你的方法没有错。没有性能问题,没有巨大的 apk 大小,没有缺点。当然,除了必须浏览 100 个布局文件。
  • 您可以尝试按所需的输入/输出值对它们进行分组。如果您有 3 个具有 2 个输入值和 1 个结果的方程和 5 个具有 3 个输入值和 1 个结果的方程,则您只需要 2 个活动。但在您的情况下,最好在代码中构建 UI 而无需触及任何布局 xml 文件。这样,您可以根据需要动态创建尽可能多的 TextView 或 EditText。您需要一个模型来描述具有所需输入/输出及其名称的方程。
  • 你不能创建一个包含标题、输入数量、输入描述和计算的方程式对象的数组列表。然后以编程方式更新 UI。

标签: android performance android-activity


【解决方案1】:

尝试使用同一个 Activity 并相应地操作视图及其内容,而不是调用多个 Activity。

示例

如果用户从微调器中选择“求解最终速度”选项,它将执行以下操作。

Intent i;

if(position == 1){ 
 i = new Intent(this,SecondActivity.class);
 i.putExtra("Action","Equation1");
 startActivity(i);
}else{
 i = new Intent(this,SecondActivity.class);
 i.putExtra("Action","Equation2");
 startActivity(i);
}
...

在您的 SecondActivity.java 中

String input1,input2, formula;

String Action = getIntent().getExtras().getString("Action");
//now you have "What to do solved"

switch(Action){
  case "Equation1" :
      //manipulate your formula for Equation1
  break;
  case "Equation2" : 
     //manipulate your formula for Equation2
  break;
}

如果您不需要特定方程式的特定视图,您甚至可以隐藏它们。

希望这会有所帮助。

【讨论】:

  • xml 布局怎么样?比如,有些方程需要 3 个 EditText 字段,有些需要 4 个字段。我是否仍需要多个 xml 布局,即每个方程式的单独 xml 布局?
  • 只制作一个 xml 布局,需要最大数量的 EditTexts。例如,如果所需的最大 EditText 为 4,则在布局中有 4 个 EditText,然后当一个特定的方程式只需要 2 个 EditText 时,隐藏其他 2 个。并分别更改 TextViews 中的标题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 2012-10-09
  • 2013-01-22
相关资源
最近更新 更多