2016-08-14 48 views
0

我在外包類中的方法launchUrl中的上下文中遇到了一些問題。我在我的應用程序中使用了幾個類中的Chrome自定義選項卡,我將爲所有自定義選項卡使用一種方法。外包幫助程序類中的.launchUrl的上下文

這裏我的助手:

public void openCustemTab(String url, Context context) { 
    CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(); 
    builder.setToolbarColor(context.getResources().getColor(R.color.colorPrimary)); 
    builder.setShowTitle(true); 

    CustomTabsIntent customTabsIntent = builder.build(); 
    customTabsIntent.launchUrl(context, Uri.parse(url)); 
} 

而且這是在我的活動/電話片段:

Helper helper = new Helper(); 
        helper.openCustemTab("Some URL", getApplicationContext()); 

我的問題是,在梅索德openCustomTab上下文的.launchUrl這麼想的工作。有人對我的問題有個想法嗎?

+0

不工作是不是一個錯誤。一個錯誤是它做X,但我期望Y,其中X可能是一個有用的錯誤消息,堆棧跟蹤或奇數輸出。 – stark

回答

0

這是因爲launchUrl參數是活動(不是上下文)和Uri。正如你可以看到它在這裏:void launchUrl (Activity context, Uri url)

您可以更換:

customTabsIntent.launchUrl(context, Uri.parse(url)); 

customTabsIntent.intent.setData(Uri.parse(url)); 
context.startActivity(customTabsIntent.intent, customTabsIntent.startAnimationBundle);