2013-08-25 33 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); 
    } 
    

這就是它的基本應用。當您首先將活動更改爲片段時,會出現很多錯誤。但是,它們都很容易修復。

相關問題