Reputation: 139
How to include layout programmatically in android without using xml layouts to display banner ads in android. I am creating a game App where i need to display banner ads in each and every game page. I have already included full screen revmob ads but i need to include banner ads. I used the following code but banner ads are not displaying
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout android:id="@+id/banner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</LinearLayout>
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
private CCGLSurfaceView mGLSurfaceView;
private boolean isCreated = false;
public static FrameLayout m_rootLayout;
public static String APPLICATION_ID = "514b9c57cce0500d00000001";
public static RevMob revmob;
// This is used to display Toast messages and is not necessary for your app
@Override
protected void onCreate(Bundle savedInstanceState) {
if (!isCreated) {
isCreated = true;
} else {
return;
}
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
//admob widget
revmob = RevMob.start(this, APPLICATION_ID);
displayRevMob();
mGLSurfaceView = new CCGLSurfaceView(this);
setContentView(mGLSurfaceView);
CCDirector.sharedDirector().attachInView(mGLSurfaceView);
getScaledCoordinate();
Global.assetManager = getAssets();
Global.context = this;
Global.loadUserInfo();
CCScene scene = CCScene.node();
scene.addChild(new SplashScene(), -1);
CCDirector.sharedDirector().runWithScene(scene);
//-------------IAP-----------------------
Log.d(TAG1, "Creating IAB helper.");
mHelper = new IabHelper(this, base64EncodedPublicKey);
mHelper.enableDebugLogging(true);
Log.d(TAG1, "Starting setup.");
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
Log.d(TAG, "Setup finished.");
if (!result.isSuccess()) {
// Oh noes, there was a problem.
complain("Problem setting up in-app billing: " + result);
return;
}
// Hooray, IAB is fully set up. Now, let's get an inventory of stuff we own.
Log.d(TAG, "Setup successful. Querying inventory.");
mHelper.queryInventoryAsync(mGotInventoryListener);
}
});
RevMobBanner banner = revmob.createBanner(this);
ViewGroup view = (ViewGroup) findViewById(R.id.banner);
view.addView(banner);
Global.myActivity=this;
}
Upvotes: 0
Views: 2244
Reputation: 1635
you can use LayoutInflater For example
LayoutInflater inflater = getLayoutInflater();
View layOut = inflater.inflate(R.layout.some_layout_name, false, false);
//to fetch Views use
TextView label_name = (TextView) layOut.findViewById(R.id.view_id_here);
Upvotes: 0
Reputation: 1346
You should first create a new view from your xml layout file by LayoutInflater. then add the banner to it. here is a sample:
LayoutInflater inflater = LayoutInflater.from(getContext());
ViewGroup yourview = (ViewGroup)inflater.inflate(R.layout.yourlayout, null);
RevMobBanner banner = revmob.createBanner(this);
yourview.addView(banner);
if you want use a linearlayout above your surfaceview, a simple way is this:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout android:id="@+id/banner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
<CCGLSurfaceView android:id="@+id/yoursurfaceview"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</CCGLSurfaceView>
</LinearLayout>
Upvotes: 2
Reputation: 3017
The programmatic translation of your XML is;
LinearLayout lin=new LinearLayout(this);
lin.setLayoutsParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
lin.setOrientation(LinearLayout.VERTICAL);
LinearLayout lin2=new LinearLayout(this);
lin2.setLayoutsParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
lin.addView(lin2);
Upvotes: 1