2014-09-04 83 views
0

我正嘗試從Android SDK遷移到適用於Admob的Google Play服務。我在添加片段端的java代碼時遇到了問題。將AdMob Google Play服務添加到片段中

這是一個使用片段作爲製表符在XML佈局之間導航的活動。在過去,我能夠直接在XML佈局中添加所有admob信息。 Google服務要求您將其鏈接到java端。

它一直在崩潰,我不知道如何處理AdView與fragements。我正在考慮將其添加到Main.java中,但不確定TabListener如何處理AdView。

我需要一些幫助。

我已經做了以下項目:1, 谷歌添加Play服務庫到我的項目 2.我聲明在清單

<activity android:name="com.google.android.gms.ads.AdActivity"  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr eenSize" /> 

    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

所有權限我有一個Main.java和TabListener到切換片段之間,但不知道如何將Adview XML鏈接到碎片。

它看不到片段中的視圖,並且它在Main.java中不起作用。

AdView adView = (AdView)this.findViewById(R.id.adView); 
AdRequest adRequest = new AdRequest.Builder().build(); 
adView.loadAd(adRequest) 

Main.java是我的主要。

public class Main extends Activity { 
// Declare Tab Variable 
ActionBar.Tab Tab1, Tab2, Tab3; 
Fragment fragmentTab1 = new FragmentTab1(); 
Fragment fragmentTab2 = new FragmentTab2(); 
Fragment fragmentTab3 = new FragmentTab3(); 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ActionBar actionBar = getActionBar(); 

    // Hide Actionbar Icon 
    // Set to False, we are not using icons 
    actionBar.setDisplayShowHomeEnabled(false); 

    // Hide Actionbar Title 
    // Set to False, used up too much space on phones 
    actionBar.setDisplayShowTitleEnabled(false); 

    // Create Actionbar Tabs 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    // Set Tab Icon and Titles 
    // Titles are as follows below 
    Tab1 = actionBar.newTab().setText("Tab 1"); 
    Tab2 = actionBar.newTab().setText("Tab 2"); 
    Tab3 = actionBar.newTab().setText("Tab 3); 

    // Set Tab Listeners 
    Tab1.setTabListener(new TabListener(fragmentTab1)); 
    Tab2.setTabListener(new TabListener(fragmentTab2)); 
    Tab3.setTabListener(new TabListener(fragmentTab3)); 

    // Add tabs to actionbar 
    actionBar.addTab(Tab1); 
    actionBar.addTab(Tab2); 
    actionBar.addTab(Tab3); 


} 
} 

TabListener.java for switching between fragments. 

public class TabListener implements ActionBar.TabListener { 

Fragment fragment; 

public TabListener(Fragment fragment) { 
    // TODO Auto-generated constructor stub 
    this.fragment = fragment; 
} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    ft.replace(R.id.fragment_container, fragment); 

} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    ft.remove(fragment); 
} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 
} 

我的XML fragmentTab1爲例。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/LinearLayout1" 
      android:orientation="vertical" 
      android:background="@drawable/background1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 

<com.google.android.gms.ads.AdView 
      xmlns:ads="http://schemas.android.com/apk/res-auto" 
        android:id="@+id/adView" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal" 
        ads:adUnitId="@string/admob_string" 
        android:gravity="bottom" 
        ads:adSize="BANNER"/> 

</LinearLayout> 

回答

0

您的AdView代碼需要放在您的Fragment.java類中,而不是您的Main.java類中。另外,一個標準的約定是將MainActivity.java命名爲Main,而不是Main.java。

相關問題