问题陈述: -
我正在处理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 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>
注意:
在下半部分,我需要一个图像和一些图像旁边的文字,如姓名等等。
答案 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);
}
}