根据用户数量创建线性布局和其他内容

时间:2012-08-19 01:17:11

标签: java android android-linearlayout

问题陈述: -

我正在处理android project,我需要根据Bottom Half part of the android screen dynamically创建Markers (Users) on the Map。所以我将android screen分为两半。在Top Half我正在展示Google Maps正常工作。在Bottom Half我需要dynamically在线性布局上创建linear layout和其他一些东西。我创建了一个image using Paint只是为了让人们了解我需要的UI。所以目前我在only one Linear Layout example中仅针对一个用户展示了bottom halfn number of usersScrollable.需要相同的东西假如我需要画两次(两个用户都在那里),那么在下半部同样的事情将在可滚动模式中有两次。如果我需要画三次,那么在下半部分应该有三次。

enter image description here

以下是我需要添加动态布局代码的代码。

    @Override
    protected void onPostExecute(ArrayList<User> response) {

        if (response!=null) {
        // Need to create here dynamically the linear layout.
        }

        for(User user : response){

        // In this loop, I am showing all the user's on the google maps

        }


    }

任何帮助将不胜感激。对于这种情况应该是什么XML文件。

目前我所拥有的XML是一个简单的UI,没有正确的下半部分,正如我在图像中所示 -

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

    <com.google.android.maps.MapView 
        android:id="@+id/mapView" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:apiKey="0vAX8Xe9xjo5gkFNEEIH7KdHkNZNJWNnsjUPKkQ" 
        android:clickable="true" 
        android:enabled="true" /> 

    <TextView 
        android:id="@+id/textView" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1" 
        android:text="TextView" /> 

</LinearLayout> 

注意:

在下半部分,我需要一个图像和一些图像旁边的文字,如姓名等等。

1 个答案:

答案 0 :(得分:1)

您不需要动态地进行布局...您可以在布局的下半部分使用ListView,并将地图设置为上半部分..然后当您获得用户列表时,在最终需要时将尽可能多的用户添加到适配器。您可以返回当前视图,以便用户显示列表中的每个项目。这是一个简短的例子..

public class MyActivity extends Activity{

     ListView mListView;
     ArrayAdapter<User> mAdapter;

     public void onCreate(Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);

          //get the listview from xml. I think you know how to layout half and half...
          mListView = (ListView)findViewById(R.id.list);
          mAdapter = new ArrayAdapter<User>(this,R.id.userviewlayout){

               @Override
               public View getView(){
                    //here is where you add the code to inflate and display a view for a single user
               }
          };

          for(User user : Users)
               mAdapter.add(user);

          mListView.setAdapter(mAdapter);
     }
}