Listview的用户界面android问题/问题

Listview的用户界面android问题/问题,android,Android,我正在尝试重新创建天气频道应用程序中使用的名为“我的位置”的UI屏幕。我想附上一个屏幕截图,但我在这里似乎做不到。看起来他们在使用两个列表视图,一个在另一个之上,但我不确定。有人能帮我确认一下吗?如果他们正在这样做,这是如何做到的?我曾试图实现这一点,但没有完全成功。我的顶部列表视图“添加位置”显示正确,但底部列表视图不会为我显示/填充?到目前为止,我将附上我的代码 任何帮助都将不胜感激 header_row.xml <?xml version="1.0" encoding="utf-8"

我正在尝试重新创建天气频道应用程序中使用的名为“我的位置”的UI屏幕。我想附上一个屏幕截图,但我在这里似乎做不到。看起来他们在使用两个列表视图,一个在另一个之上,但我不确定。有人能帮我确认一下吗?如果他们正在这样做,这是如何做到的?我曾试图实现这一点,但没有完全成功。我的顶部列表视图“添加位置”显示正确,但底部列表视图不会为我显示/填充?到目前为止,我将附上我的代码

任何帮助都将不胜感激

header_row.xml

<?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="wrap_content">
ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:src="@drawable/ic_menu_add" />
LinearLayout
android:orientation="vertical"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_height="fill_parent">
TextView
android:id="@+id/caption"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Add a place"/>
/LinearLayout>
/LinearLayout>

图片框
android:id=“@+id/图标”
android:layout\u width=“包装内容”
android:layout\u height=“fill\u parent”
android:layout_marginRight=“6dip”
android:src=“@drawable/ic\u menu\u add”/
线性布局
android:orientation=“垂直”
android:layout_width=“0dip”
android:layout_weight=“1”
android:layout\u height=“fill\u parent”>
文本框
android:id=“@+id/caption”
android:layout\u width=“fill\u parent”
android:layout\u height=“0dip”
android:layout_weight=“1”
android:gravity=“中心垂直”
android:text=“添加位置”/>
/线性布局>
/线性布局>
main.xml

?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="?android:attr/listPreferredItemHeight"
android:padding="6dip">
ListView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
/LinearLayout>
/LinearLayout>

public class ListViewTest extends Activity
{
private static String[] items={"lorem", "ipsum", "dolor",
"sit", "amet", "consectetuer",
"adipiscing", "elit", "morbi",
"vel", "ligula", "vitae",
"arcu", "aliquet", "mollis",
"etiam", "vel", "erat",
"placerat", "ante",
"porttitor", "sodales",
"pellentesque", "augue",
"purus"};

private ListView Header;
private ListView List;
private ArrayList<Caption> caption = null;
private CaptionAdapter adapter;
private ArrayAdapter listAdapter;

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

caption = new ArrayList<Caption>();
Caption cap = new Caption();
cap.setCaption("Add a place");
caption.add(cap);

this.adapter = new CaptionAdapter(this, R.layout.header_row, caption);

Header = (ListView) findViewById(R.id.header);

Header.setAdapter(adapter);

//Log.d("ListViewTest", "caption size is:" + caption.size());

adapter.notifyDataSetChanged();

List = (ListView) findViewById(R.id.list);

listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

List.setAdapter(listAdapter);

listAdapter.notifyDataSetChanged();

//setListAdapter(new ArrayAdapter<String>(this,
//android.R.layout.simple_list_item_1,
//items));
}

private class CaptionAdapter extends ArrayAdapter<Caption>
{
private ArrayList<Caption> caption;

public CaptionAdapter(Context context, int textViewResourceId, ArrayList<Caption> caption)
{
super(context, textViewResourceId, caption);
this.caption = caption;
}

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;

if (v == null)
{
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.header_row, null);
}

Caption c = caption.get(position);

if (c != null)
{
TextView caption = (TextView) v.findViewById(R.id.caption);

if (caption != null)
{
caption.setText(c.getCaption());
}
}

return v;
}

}
}
?xml version=“1.0”encoding=“utf-8”>
LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android"
android:layout\u width=“fill\u parent”
android:layout_height=“?android:attr/listPreferredItemHeight”
android:padding=“6dip”>
列表视图
android:id=“@+id/header”
android:layout\u width=“包装内容”
android:layout\u height=“wrap\u content”/>
线性布局
android:orientation=“垂直”
android:layout\u width=“fill\u parent”
android:layout\u height=“wrap\u content”>
列表视图
android:id=“@+id/list”
android:layout\u width=“fill\u parent”
android:layout\u height=“wrap\u content”/>
/线性布局>
/线性布局>
公共类ListViewTest扩展活动
{
私有静态字符串[]项={“lorem”、“ipsum”、“dolor”,
“坐”、“坐”、“坐”、“坐”,
“告别”、“精英”、“摩比”,
“vel”、“ligula”、“vitae”,
“arcu”、“aliquet”、“mollis”,
“etiam”、“vel”、“erat”,
“placerat”,“ante”,
“porttitor”、“sodales”,
“佩伦茨克”,“奥古斯”,
“purus”};
私有列表视图头;
私有列表视图列表;
私有ArrayList caption=null;
专用字幕适配器;
专用阵列适配器列表适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
caption=newarraylist();
Caption cap=新标题();
第2章标题(“添加位置”);
标题.添加(第1章);
this.adapter=新标题适配器(this,R.layout.header_行,标题);
Header=(ListView)findViewById(R.id.Header);
Header.setAdapter(适配器);
//Log.d(“ListViewTest”,“标题大小为:”+caption.size());
adapter.notifyDataSetChanged();
List=(ListView)findViewById(R.id.List);
listAdapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,items);
List.setAdapter(listAdapter);
listAdapter.notifyDataSetChanged();
//setListAdapter(新阵列适配器)(此,
//android.R.layout.simple\u list\u item\u 1,
//(项目);;
}
私有类字幕适配器扩展了ArrayAdapter
{
私有数组列表标题;
公共字幕适配器(上下文上下文、int-textViewResourceId、ArrayList字幕)
{
super(上下文、textViewResourceId、标题);
this.caption=标题;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
视图v=转换视图;
如果(v==null)
{
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(右布局图标题行,空);
}
Caption c=Caption.get(位置);
如果(c!=null)
{
TextView标题=(TextView)v.findViewById(R.id.caption);
如果(标题!=null)
{
caption.setText(c.getCaption());
}
}
返回v;
}
}
}

我认为该页面根本不是两个列表视图。更像这样:

<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/add_a_place"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />

        <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/weather_logo" />
    </LinearLayout>

    <ListView android:id="@+id/somelist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" />
</LinearLayout>

不过我觉得我错过了什么。我在那个页面上没有看到任何东西表明它可能是两个ListView,所以我想知道它对您来说是否看起来有所不同