0

リストビューに表示されるデータのさまざまな列を分離しようとしています。アダプターのコードは次のとおりです。

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 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>

私はそれが何をするかを知っているので、仕切りの透明度を削除しました。

4

1 に答える 1

0

あなたには誤解があります。2 つの異なるものに同じレイアウト (R.layout.second) を使用しています。ListView (つまり、R.layout.second) を含む画面全体に 1 つのレイアウトが必要です。

setContentView(R.layout.second)

次に、別のレイアウト (つまり、mycell.xml) を使用して、その ListView の 1 つの行の外観を定義します。

new SimpleCursorAdapter(this, R.layout.mycell, data, fields, new int[] { R.id.firstname, R.id.secondname, R.id.name });

仕切りは、データベースの行ごとに水平に描かれます。非表示にしました。

firstname 、 lastname など (列ごとに) の間に仕切りが必要な場合は、行に使用しているレイアウト (R.layout.mycell) を編集する必要があります。

于 2011-07-12T14:43:14.717 に答える