ArrayAdapter使用的Textview占据整个屏幕并且“标题”和“描述”没有显示Textviews ...我想在列表前显示它们,帮助吗?
这是我的代码:
TextView titleText = (TextView) this.findViewById(R.id.title);
titleText.setText(sitesList.getTitle());
TextView descriptionText = (TextView) this.findViewById(R.id.description);
descriptionText.setText(sitesList.getDescription());
ArrayList<String> Categories = sitesList.getCategory();
ListView lv = new ListView(this);
lv.setAdapter(new ArrayAdapter<String>(this,R.layout.main,R.id.list_item,Categories));
setContentView(lv);
我的布局文件是:
<?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">
<TextView android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView android:id="@+id/list_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
谢谢!
答案 0 :(得分:3)
您之所以这样做,是因为您在ListView
中设置了setContentView
。而是将其添加到LinearLayout
,然后ListView
会同时出现TextView
android.R.layout.simple_list_item_1
您为标题和说明指定的{1}}。
我认为还有一件事,您应该在适配器中使用xml
,或者您需要为自定义TextView
创建自定义<TextView android:id="@+id/list_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
并在那里使用,然后添加
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:id="@+id/layout"
android:orientation="vertical">
<TextView android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView android:id="@+id/description"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
。
所以基本上你的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:orientation="vertical">
<TextView android:id="@+id/list_item"
android:layout_width="fill_parent"
android:id="@+id/list_item"
android:layout_height="wrap_content" />
</LinearLayout>
你的cusotmized xml将是:
<强> custom_item.xml 强>
lv.setAdapter(new ArrayAdapter<String>(this,R.layout.custom_item,R.id.list_item,Categories));
最后你的适配器字符串将是:
LinearLayout layout=(LinearLayout)findViewById(R.id.layout);
layout.addView(lv);
然后,
{{1}}
答案 1 :(得分:0)
尝试
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
答案 2 :(得分:0)
如果你想要“标题”和“描述”Textviews而不是ListView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/title"
... />
<TextView android:id="@+id/description"
... />
<ListView android:id="@+id/list_item"
... />
</LinearLayout>
在java代码中:
setContentView(R.layouts.yourxml);
ListView lv = (ListView) findViewById(...)
lv.setAdapter(...)
如果你想要3 TextView的列表项使用服装适配器