0

问题陈述:-

我正在研究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 examplebottom half一个用户。我需要相同的东西n number of users假设Scrollable.如果我需要绘制两次(两个用户在那里),那么在下半部分相同的东西将在可滚动模式下出现两次。如果我需要画三遍,那么在下半部分应该有三遍。

在此处输入图像描述

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

    @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> 

笔记:

在下半部分,我需要图像和图像旁边的一些文本,例如名称等。

4

1 回答 1

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);
     }
}
于 2012-08-19T01:25:11.100 回答