What's wrong with my dynamically declared layouts?

Hello everyone, this is my first post here, I got a problem when developing my android app,my android app supposed to have a LinearLayout contained in a HorizontalScrollView, now i have to declare a number of another contained layouts that are contained in that main layout but i don’t know the number or the data of these layouts as I take this data from the server i connect to after the app launching, So, the main layout that contained in the HorizontalScrollView is statically created in the XML file and it’s contained layouts must created throw run time by the java code. So, i take them from the server database and put them in a two-dimentional array and then make a loop to loop throw that array and create a layouts equal to that array size, I don’t know if this way is right or not but it gives me nothing, and this is my code :

XML:

[xml] <LinearLayout         
android:id="@+id/ver1"         
android:layout_width="fill_parent"        
 android:layout_height="0dp"         
android:layout_weight="1"         
android:background="@android:color/transparent"         
android:orientation="vertical" >         
 <TextView            
android:layout_width="wrap_content"             
android:layout_height="wrap_content"             
android:text="@string/rooms"             
android:textColor="@android:color/white"             
android:textSize="17sp" />          
<HorizontalScrollView            
android:id="@+id/scroll_rooms"            
android:layout_width="fill_parent"            
android:layout_height="wrap_content" >          
<LinearLayout             
android:id="@+id/ver_rooms"            
android:baselineAligned="false"            
android:layout_width="wrap_content"            
android:layout_height="wrap_content"            
android:orientation="horizontal">           
</LinearLayout>         
</HorizontalScrollView>     
</LinearLayout>[/xml]

JAVA:

[java]
private void declare_dynamics() {

		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View v = inflater.inflate(R.layout.homeview, null);

		LinearLayout ver_rooms = (LinearLayout) v.findViewById(R.id.ver_rooms);
		List<LinearLayout> inner_ver = new ArrayList<LinearLayout>();

		LinearLayout.LayoutParams lp_ineer_ver = new LinearLayout.LayoutParams(
				300, 300);
		LinearLayout.LayoutParams lp_icon = new LinearLayout.LayoutParams(
				LinearLayout.LayoutParams.WRAP_CONTENT, 300, 1);
		lp_icon.setMargins(10, 15, 5, 0);

		DisplayMetrics metrics = new DisplayMetrics();
		getWindowManager().getDefaultDisplay().getMetrics(metrics);

		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
				metrics.widthPixels / 4, LayoutParams.MATCH_PARENT);
		params.setMargins(10, 15, 5, 0);

		for (int i = 0; i < (Integer) ((Rooms.size() / 2) + 1); i++) {
			LinearLayout temp_inner_ver = new LinearLayout(this);
			temp_inner_ver.setLayoutParams(lp_ineer_ver);
			temp_inner_ver.setOrientation(LinearLayout.VERTICAL);
			temp_inner_ver.setWeightSum(2);
			temp_inner_ver.setPadding(7, 7, 7, 7);
			temp_inner_ver.setBackgroundColor(Color.BLUE);
			inner_ver.add(temp_inner_ver);
		}
		
		int cmp = 0;
		for (int j = 0; j < inner_ver.size(); j++) {
			LinearLayout icon1 = new LinearLayout(this);
			LinearLayout icon2 = new LinearLayout(this);
			icon1.setLayoutParams(params);
			icon2.setLayoutParams(params);
			icon1.setBackgroundResource(R.drawable.ac_overlay);
			icon2.setBackgroundResource(R.drawable.ac_overlay);
			icon1.setOrientation(LinearLayout.HORIZONTAL);
			icon2.setOrientation(LinearLayout.HORIZONTAL);
			icon1.setTag(NORMAL);
			icon2.setTag(NORMAL);

			ImageButton test = new ImageButton(this);
			test.setLayoutParams(lp_icon);
			test.setImageResource(R.id.tvshow_img);
			icon1.addView(test);
			icon1.setBackgroundColor(Color.RED);

			inner_ver.get(j).addView(icon1);
			cmp++;
			if (cmp != Rooms.size()) {
				inner_ver.get(j).addView(icon2);
				cmp++;
			}
			ver_rooms.addView(inner_ver.get(j));
		}

	}[/java]

And that’s the array called Rooms:


    [0]  room_id, 0, 14, 15, 18, 37, 38  
    [1]  room_name, Home, Living Room, Master Bedroom, Kitchen, Office Room, Entrance  
    [2]  room_types_type_id, 1, 4, 6, 8, 15, 12  
    [3]  sys_room_id, 0, 2, 3, 6, 5, 1  
    [4]  sys_zone_id, 1, 1, 1, 1, 2, 1  
    [5]  type_cats_cat_id, 4, 1, 1, 2, 1, 3  
    [6]  room_position, 0, 1, 2, 3, 4, 5  
    [7]  locked, false, false, false, false, false, false  

You want a ListView or GridView and an Adapter for it. Steps:

  1. Create layout and attach Adapter to the view.
  2. Run Async task with a callback when done. Async task will get the server data
  3. In the callback, grab the result from the server and create new items for the Adapter
  4. Notify the Adapter that it’s contents have changed
  5. Optionally scroll to some point using runonui.

but the ListView works vertically and I can’t force the GridView to one row.