2013-01-22 20 views
0

我正在經歷一個相當熟練的開發人員的代碼,看到這一點:ContectWrapper在對話框構造

new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.Theme_DeviceDefault)); 

而且因爲這是建立針對API 14應用程序的唯一原因,它讓我徘徊這種方法的好處。我看不到任何東西。我不認爲它會在對話框中調用.show()或.dismiss()時發生異常,並且我無法想象其他任何事情。

在此先感謝。

回答

1

這是在API 11之前爲構建器設置對話框主題的方法。帶有第二個參數的構造函數僅從API 11中添加。沒有其他人在之前爲構建器設置主題。 Here is explanation with example.

+0

這是有道理的,如果主題是自定義的,但因爲他使用了R.style.Theme_DeviceDefault它似乎沒用。 – romkansk

+0

不是。他想要默認對話框。但他的應用程序或某些活動可能具有自定義主題。所以嗨告訴:「不要使用當前活動主題(由getActivity()返回),使用默認主題」。 – Leonidos

+0

我想我知道你的意思,但它似乎仍然不合理。 Theme_DeviceDefault僅在API 14中添加,它是否仍會導致具有較早API的設備上的默認主題?如果不是,他可以使用新的構造函數。 – romkansk