我正在尝试将列表视图中显示的不同数据列分开。适配器的代码如下:
public class SQLiteDemo extends ListActivity {
private SQLiteDatabase database;
private CursorAdapter dataSource;
private static final String fields[] = { "firstname", "lastname", "resourceid", BaseColumns._ID };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
DatabaseHelper helper = new DatabaseHelper(this);
database = helper.getWritableDatabase();
Cursor data = database.query("cards", fields, null, null, null, null,
null);
dataSource = new SimpleCursorAdapter(this, R.layout.second, data, fields,
new int[] { R.id.firstname, R.id.secondname, R.id.name });
ListView view = getListView();
view.setHeaderDividersEnabled(true);
view.addHeaderView(getLayoutInflater().inflate(R.layout.second, null));
setListAdapter(dataSource);
我在布局文件中定义了listview(我是否需要为inflater视图执行此操作?)
我尝试按如下方式添加分隔符....
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="visible"
android:divider = "@android:color/transparent"
android:dividerHeight ="10.sp" />
添加分隔符项后似乎没有任何区别;我做错了什么?
要说清楚,我是一个完整的机器人菜鸟,不是在寻找一个完整的答案(尽管它们有时候很有用)只是在正确的方向上轻推就足够了。谢谢你们!
使用R.layout.second编辑
<?xml version="1.0" encoding="utf-8" ?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:id="@+id/rowLayout"
android:orientation="horizontal"
android:layout_width="fill_parent">
<TextView android:layout_width="wrap_content"
android:layout_alignParentTop = "true"
android:layout_alignParentLeft="true"
android:layout_height="wrap_content"
android:id="@+id/firstname"
android:text="FirstName"/>
<TextView android:layout_width="wrap_content"
android:layout_toRightOf = "@+id/firstname"
android:layout_height="wrap_content"
android:id="@+id/secondname"
android:text="SecondName"
/>
<TextView android:layout_width="wrap_content"
android:layout_toRightOf = "@id/secondname"
android:layout_height="wrap_content"
android:id="@+id/name"
android:text="ResourceID"
/>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:visibility="visible"
android:dividerHeight ="10.sp" />
</RelativeLayout>
我已经删除了分隔符透明度,因为我知道它的作用。
答案 0 :(得分:0)
你有一个误解。您对两个不同的东西使用相同的布局(R.layout.second)。 您需要一个包含ListView(即R.layout.second)的整个屏幕的布局。
setContentView(R.layout.second)
然后使用其他布局(即mycell.xml)来定义ListView中sigle行的外观。
new SimpleCursorAdapter(this, R.layout.mycell, data, fields, new int[] { R.id.firstname, R.id.secondname, R.id.name });
为数据库中的每个行水平绘制分隔线。你让它变得无形。
如果你想在firstname,lastname等之间设置分隔符(对于每一列),你必须编辑你用于行的布局(R.layout.mycell)。