我想要一个包含徽标的标题。然后是列表视图。但我正在努力让他们两个都在屏幕上。要么我只获得标题或只有Listview。有人可以在这里说清楚。这是我的档案。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grammar_sections);
Intent i = getIntent();
module_id =i.getStringExtra("module_id");
TestAdapter mDbHelper = new TestAdapter(getBaseContext());
mDbHelper.open();
ArrayList<String> testdata = mDbHelper.getAllSections(module_id);
for(String t : testdata )
{
//Log.d("out", t.toString());
}
mDbHelper.close();
m_listview = (ListView) findViewById(R.id.list);
if(m_listview != null)
{
Log.i("check","yup");
}
else
{
Log.i("check","nope");
}
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this,R.layout.grammar_sections , R.id.list_item, testdata);
m_listview.setAdapter(adapter);
// grammar_sections.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip" >
<!-- Header Starts-->
<LinearLayout android:id="@+id/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@layout/header_gradient"
android:paddingTop="5dip"
android:paddingBottom="5dip">
<!-- Logo Start-->
<ImageView android:src="@drawable/logo_icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="10dip"/>
<ImageView android:src="@drawable/logo_text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginLeft="10dip"/>
<!-- Logo Ends -->
</LinearLayout>
<!-- Header Ends -->
<TextView
android:id="@+id/list_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="16dip"
android:typeface="sans"
android:textSize="16dip"
/>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
/>
</RelativeLayout>
答案 0 :(得分:0)
ListView
的方法为addHeaderView。正如医生所说:
Add a fixed view to appear at the top of the list.
只需创建您的view
并通过inflater
重新审核即可。然后将其添加到ListView
答案 1 :(得分:0)
从您的代码中
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.grammar_sections , R.id.list_item, testdata);
您将相同的 grammar_sections.xml 文件传递给 ArrayAdapter 。所以我认为是问题,而是创建一个包含列表项的不同xml布局文件,并将此xml布局文件传递给 ArrayAdapter 构造函数..
答案 2 :(得分:0)
这是一个有效的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="fill_parent"
android:background="@color/background"
android:orientation="vertical" >
<include layout="@layout/header" />
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="@color/white"
android:choiceMode="singleChoice"
android:divider="@color/blue_vdark"
android:dividerHeight="1dp" />
</LinearLayout>
您可以使用自定义View
或Layout
替换包含,或在ListView
下添加一个包含。
尝试将此代码与您的代码进行比较。另外,我在xml文件的末尾没有看到</RelativeLayout>
标记。