2014-09-04 10 views
0

Android SDK에서 AdMob 용 Google Play 서비스로 이전하려고합니다. 조각쪽에 자바 코드를 추가하는 데 문제가 있습니다.AdMob Google Play 서비스를 조각에 추가

XML 레이아웃간에 이동하기 위해 조각을 탭으로 사용하는 작업입니다. 과거에는 모든 admob 정보를 XML 레이아웃에 직접 추가 할 수있었습니다. Google 서비스를 사용하려면 자바 측에서 링크해야합니다.

계속해서 충돌이 발생하며 조각으로 AdView를 처리하는 방법을 파악할 수 없습니다. Main.java에 추가하려고했지만 TabListener가 AdView를 처리하는 방법을 잘 모르겠습니다.

이 부분에 대한 도움이 필요합니다.

이미 다음 항목 수행

: 1. 구글이 내가이 Main.java와 TabListener에이

<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" /> 

매니페스트

의 모든 권한을 선언 2. 내 프로젝트에 Play 서비스 라이브러리 추가하기 조각 사이를 전환 할 수 있지만 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 조각 Tab1.

<?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 코드는 Main.java 클래스가 아닌 Fragment.java 클래스에 있어야합니다. 또한, 표준 규칙은 Main.java 대신 "Main"MainActivity.java의 이름을 지정하는 것입니다.

관련 문제