2013-08-25 26 views
6

我有一个应用程序在基本主题“空白活动”上工作,我想要做的是将其更改为“主/细节流程“主题。我知道这会让我的应用程序在android SDK 11 +(android 3.0 Honeycomb +)上工作,这对我来说是OK的。问题是我不知道从哪里开始,进行BIG转换的基本步骤是什么?我找不到任何例子来帮助我解决这个问题。我应该寻找什么。我确信这已经完成了,至少请给我一些关于如何做到这一点的指示? 我的应用程序并不复杂,它使用活动,异步任务,数据库,自定义列表......这是非常基本的。我使用自定义列表来显示数据,当我点击它时,它显示了更多的细节,所以我想在比“主/细节流”更专业的问题上做更好的方法。如果你有任何关于“主/细节流程”的教程,你可以帮我解决这个问题。如何将应用程序主题从普通的“空白活动”更改为“主/细节流程”

+0

注:我个人讨厌这种布局,侧面板太多没有目的的屏幕。我会考虑DrawerLayout,链接:http://developer.android.com/training/implementing-navigation/nav-drawer.html – LuckyMe

+0

@LuckyMe谢谢,但这不是我所要求的。 – Waqleh

+0

我知道,这就是为什么我没有把它作为答案... – LuckyMe

回答

5

我有对基本主题运行的应用程序“空白活动” 什么我想要做的就是将其更改为一个主/详细信息流” 主题。

我想应用程序流程的改变会更适合于主题的变化,两个显而易见的问题是,为什么你突然想要做这个改变,并确定你的应用程序在主/细节流程中是有意义的?答案最多可能是积极的,但你应该回答他们。

我知道,这将使得在Android SDK我的应用工作11 + (Android 3.0的蜂窝+),这是我的OK

我不明白为什么你的应用程序不能使用新的主/细节材料在以下版本中运行。

问题是我不知道从哪里开始,什么是基本的 步骤使这个BIG转换?我找不到任何示例来帮助 我解决这个问题。我应该寻找什么。我相信这 已经完成,你至少可以请给我一些指示如何 做到这一点?

您还没有提供关于您的应用如何实施的详细信息。更改将围绕碎片进行,因此如果使用碎片框架构建当前的单个窗格版本,则会出现大问题。

如果您的应用程序是使用碎片构建的,那么做出更改不应该太难。你需要:

  • 确定哪些部分(片段)应在活动(从旧的)相结合,使主/细节(当空间允许的话)
  • 变化多窗格活动以适应新的片段。这应该很容易做到,但这取决于每个碎片暴露的特征的大小。
  • 修改活动的其余部分(用于当应用程序将不会在多窗格模式运行),这将是小变化的活动将主要保持为最新版本

如果您的应用程序ISN”使用片段构建,那么我上面所说的仍然适用,但你也需要实际上使所需的片段包装你的应用程序的任何功能。这很可能会导致大的代码重构。

+0

我更新了我的问题,看看。我明白这可能是一个很大的工作,但我愿意这样做 – Waqleh

+0

@ user2443241我见过编辑。我不确定你希望找到什么样的教程。从编辑我假设你现在没有片段,在这种情况下,你可能想要简单地使用主/明细模板创建一个新项目,并开始重新模块项目提供的片段中的旧项目代码(片段)。这样你可以很容易地看到所需的连接。 – Luksprog

+0

我已经在Play商店中有我的应用程序,我希望它可以作为我旧版的更新,对于一个新项目来说可能吗? – Waqleh

2

这是一个关于Android的主/详细信息模板教程 - An Android Master/Detail Flow Tutorial

据我了解你的应用程序启动并运行 - 所以我不知道它是否值得去尝试重写它,除非你正在经历当然一些问题。 :) 一般主/详细信息流需要以下几个步骤:

  • 实现一个ListFragment显示您的项目
  • 的基本信息实现一个Fragment显示有关特定项
  • 详细信息拨打XML布局大型设备文件(位于layout-sw600dp文件夹中)。在这个布局中,你必须把你的碎片。
  • 写这个布局文件的一般版本(即文件具有相同的名称,但位于该layout文件夹中),仅包含ListFragment。
  • 让您的活动从ListFragment处理onItemClick事件。每次点击某个项目时,都必须检查该活动是否显示了这两个片段或仅显示了ListFragment。如果两者都可见,则必须通知细节片段,以选择新项目,以便显示其数据。否则,您必须创建新的细节片段(当然,您可以重复使用),将关于所选项目的一些信息(以便显示项目的数据)传递给它,并用新的细节代替ListFragment

这是一个基本的概述,但它应该足以让你对这个流程有所了解。如果您需要更多的细节 - 请让我知道。 :)

2

下面是developer.android.com fragment-uiadaptui

一些链接,这些都是有关片段一些指引,但他们使用的是主/详细信息的应用程序告诉。

另外,不要忘了签出新闻阅读器应用程序作为样本在第二个链接提供。

2

主/明细流和空白活动与您想通过更改应用程序主题或应用程序基本主题进行更改不同。如果您首先使用UI片段设计主/明细流模板,则会更好,然后根据您的空白活动与主模板进行必要的更改。对于master/detail流程教程,只需google它,你会发现很多例子。

2

如果您有最新的Android SDK的版本,你应该能够创建一个新的Android应用程序,并在此过程中,你可以选择让向导创建一个主/详细信息流的应用为您服务。它会创建一个基本的工作应用程序,以便您可以查看代码并了解必要的部分。然后,根据您的应用程序的简单程度,您可能希望将所有当前代码移至新应用程序,反之亦然。

宏观变化会发生:

  1. 更改当前的所有活动,而不是extend Fragment
  2. 你将不得不创建一个FragmentActivity来调用你的Fragments。这基本上就是样板代码,只需添加Fragments的名称即可。
  3. 不要忘记仔细检查你的Manifest!

在转换后的碎片,以前延长活动时间:

  1. 无处不在,你需要一个背景下,切换与getActivty()(或创建一个全局变量,让它只调用一次)
  2. 变化onCreate()

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
        mView = inflater.inflate(R.layout.fragment_signals, container, false); 
        setHasOptionsMenu(true); // Add if you want to display a Menu 
        // Your initiation code here 
        return mView; 
    } 
    
  3. 如果你有一个菜单,将其更改为

    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
        inflater.inflate(R.menu.activity_main, menu); 
        super.onCreateOptionsMenu(menu, inflater); 
    } 
    

这就是它的基本应用。当您首先将活动更改为片段时,会出现很多错误。但是,它们都很容易修复。

相关问题