是否可以减少android中的页面数量?

Posted

技术标签:

【中文标题】是否可以减少android中的页面数量?【英文标题】:Is it possible to reduce number of pages in android? 【发布时间】:2015-11-18 20:04:39 【问题描述】:

我正在制作一个安卓应用程序。这个应用程序由列表组成。通过单击列表中的每个项目,将打开一个新页面。 此列表包含 50 个项目。我应该创建 50 个活动及其相应的 XML 文件。 那么,有什么方法可以让这个过程更容易,而不是强迫我一个一个地完成这 50 个活动? 我的名声不够。所以我上传了相关图片。 http://uupload.ir/files/oh1o_1.png http://uupload.ir/files/zam9_2.png

【问题讨论】:

也许page 你的意思是Activity 如果所有项目都有相似的数据,为什么要创建 50 甚至 2 个屏幕?只创建一个屏幕(Activity 或 Fragment)。将点击项目的信息传递到该屏幕并呈现它。 Rohit5k2 说得对。 没有每个页面都有不同的数据。有不一样的。 【参考方案1】:

不知道创建 50 个页面是什么意思。您不必为列表中的每个项目创建一个新类,而是创建一个类的新实例。这就是编程,OOP(面向对象编程)开始发挥作用。基本上你需要做的是:

创建一个包含您的列表的“main_activity”类 创建一个“item_detail_activity”,它将显示有关您点击的项目的详细信息

您需要编写的是根据单击的项目“传递”正确数据的逻辑。当单击“main_activity”中的一个项目时,您将创建一个“item_detail_activity”的新实例,并传递正确的数据(通过一个包)。

顺便说一句,有很多教程可以帮助您更好地理解 android 应用程序的逻辑。

【讨论】:

甚至是OOP应用的逻辑 谢谢。我有主要活动,通过单击此活动中的每个项目,新活动应该开始。所以我知道我应该使用一些将新数据传递给新活动的东西,我不需要单独制作这 50 个活动。 这里您可以找到如何使用 Bundle 在活动之间传递数据的示例:bundle_example【参考方案2】:

如果您有一个项目列表,可能意味着您有一个具有相同结构的同类对象列表。

因此,您将有 50 个页面向用户显示具有不同变量值的相同项目,具有相同的结构。

您可以将列表中的对象设为parcelable(请参阅this),然后将其与Intent 一起传递给您创建的第二个Activity,接收它,最后用您的项目填充屏幕通过了。

如果您有任何问题或疑问,请随时询问:)

编辑: 想象一下,您的列表视图称为 ListView,而您用于填充列表视图的项目列表在 MainActivity 中称为列表,请执行以下操作:

ListView listView = (ListView) findViewById(R.Id.ListView);
listView.setOnItemClickListener(new OnItemClickListener() 
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) 
          // position is the index of selected item
          // Launching new Activity on selecting single List Item
          Intent i = new Intent(MainActivity.this, SecondActivity.class);
          // sending data to new activity
          i.putExtra("item", list.get(position));
          startActivity(i);
      
  );

在您的 SecondActivity 中,使用 getParcelableExtra("item") 您检索单击的项目。在这里,您可以使用此项的变量填充页面。

here 是意图的文档。

在 secondActivity 中,如果某个变量具有特定值或为空,则某些东西必须消失,请使用visibility 或fragment:创建一个显示所有大小写的 Activity,而不是使用可见性或片段并调整它; )

【讨论】:

谢谢你知道我在主要活动中有一个列表视图。通过单击每个项目,一个新的活动应该开始。我用意图开始新的活动。但是这个列表包含 50 个项目,每个项目引用不同的页面。我的意思是每个新活动都包含不同的内容。我应该创建这个新活动是否有任何方法只能将新数据传递到该页面? 我会试试 Parcelable。每个新页面都包含不同的图像视图和文本。我希望我能做到【参考方案3】:

将您的活动更改为片段活动并编写代码以显示相应列表视图单击的详细信息。很容易理解。

【讨论】:

以上是关于是否可以减少android中的页面数量?的主要内容,如果未能解决你的问题,请参考以下文章

雅虎军规34条

有没有办法减少使用软件的系统中的内存数量?

减少 Core Data 中的关系数量

为远程 html 页面从 Android 中的本地资产加载 jQuery

网站收录页面数量减少原因及分析

在Java编码中,如何减少bug数量