# Refresh a single view

The game I'm working on is based on different levels. I can use different activities or only one activity with different layouts ( or maybe only one layout, you have to apologize me but I'm studying alone and it's pretty hard to learn alone ).

My problem is: I'm not sure what is best way to implement levels in game. If I use only one activity as container for each level, where I design each level as different layout, how can I refresh my current activity with the new content ? To make it clear, think about "Cut the rope", is every level a different activity or they load different xml's on the same ?

I'm sorry if this question is not properly written, but I can't find more specific terms to make it better.

In general your "game" is a single activity. You may have several activities in your program if you end up include external libraries like an ad-service.

I can't speak to the "best way" to implement levels, but one way is to implement your level's view and logic in a generic manner and use simple files (text, xml whatever) to describe the specifics. This may all sound vague at first, but consider what makes up a simple level in a game such as Nintendo's "Super Mario" on the NES. The level made up of a background, some foreground objects (bricks, pits, ?-blocks), and enemies (Koopas, Goombas) and the flag pole at the end. If your level's implementation knows how to apply a background, place fore ground objects in the world, places enemies, and set the end goal, then adding the new levels is easy, just add a new level input file.

In your "Cut the Rope" example, it is unlikely (I say unlikely because I didn't write that game) that a different layout is used for each level. More likely is there is a single game activity using a single layout for the game's view. Each new level reuses the same layout and replaces the content.

• thanks for the answer, my question is exactly the part of "replacing contets", to do that, should I write different xml (and with different xml I ment different layout ) or is there a better way ? Jul 21 '12 at 22:02
• For simple games I think you'd only need/want a single layout. The game's contents such as the entities I described in my answer could be configurable via an xml or text file. Jul 24 '12 at 20:45
• thanks, so I should use the inflateView() method to load a different xml based on where I'am into the game, shouldn't I ? Jul 24 '12 at 20:52
• Sorry I don't know the answer to this. I was trying to answer in general terms, but I'm not very familiar with the specific Android APIs for layouts. Jul 25 '12 at 22:56

In Android, anything you can do in XML layout file can be also be created via Java code. For example, instead of using the XML tags you could have your code that initializes the level create one:
LinearLayout myLL = new LinearLayout(this);

myLL.setOrientation(LinearLayout.HORIZONTAL);

TextView text = new TextView(this);

myLL.addView(text);

Check the API documentation to dynamically create the objects that your game needs to display for your level.

• this isn't what i needed, but thanks anyway for the tip Jul 24 '12 at 20:51