2012-05-18 5 views
1

새로운 응용 프로그램 작업을 시작했고 v13 지원 패키지를 통해 Fragment을 사용하여이 응용 프로그램을 시작하기로 결정했습니다. 전화 번호 & 타블렛 디자인을 수행하는 하나의 응용 프로그램을 만들 수 있습니다.조각 내에서 AdMob을 사용 하시겠습니까?

코드를 통해 XML 파일을 만들면 조각 내에서 내 AdMob 광고가 작동하지만 코드를 통해 생성하려고하면 문제가 발생합니다. (Fragment_Admob, AdSize, 문자열)

생성자 AdView가 AdView가이 활동을 기대하지으로

은 그래서 의미가 확인 같았다 정의되지 않는다 :

public class Fragment_Admob extends Fragment implements AdListener 
{ 

    private static final String LOG_TAG = "Fragment_Admob"; 

    private AdView adView; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 

     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.admob_view, container, false); 

     // Create an ad. 
     adView = new AdView(this, AdSize.BANNER, "My_AdMob_Code"); 

     ... 
    } 

    ... 
} 

Eclipse는 나에게 말한다 조각. 그래서 클래스가 Fragment 대신 FragmentActivity를 확장하도록 만들었고 그 문제를 해결했습니다. 그러나 지금은 이전에 작업 해 왔던 런타임에 조각 확장 문제가 있지만 실제로는 비 활동 코드 집합에서 FragmentActivity를 사용한다고 생각하지 않기 때문에 여기서 해결할 수 없습니다.

답변

4

나는 조각에 광고를 넣으려고 잘못 생각하고 있다는 것을 깨달았다. 대신 클래스가 FragmentActivity를 확장 한 다음 내 레이아웃을 RelativeLayout으로 만들고 하단에 새로운 RelativeLayout을 삽입하여 정확한 중력을 붙여 막대를 만듭니다. 그런 다음 Fragments는 RelativeLayout 내부에 상주하며 이에 따라 크기가 조정됩니다.

public class MyClass extends FragmentActivity implements AdListener 
{ 
    // Create an ad. 
    adView = new AdView(this, AdSize.SMART_BANNER, "MY_ID"); 
    // Set the AdListener. 
    adView.setAdListener(this); 
    // Add the AdView to the view hierarchy. The view will have no size until the ad is loaded. 
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.home_layout); 
    RelativeLayout.LayoutParams adsParams =new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    adsParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
    layout.addView(adView,adsParams); 
    AdRequest adRequest = new AdRequest(); 
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
    // Start loading the ad in the background. 
    adView.loadAd(adRequest); 
} 
관련 문제