0

こんにちは、前にリストビューを更新する方法を尋ねたところ、ArrayAdapter を使用するよう提案されました。問題は、リストビューを更新していることですが、期待値 some object ではありません。

私のコードは次のようなものです:

Cursor cursor = db.rawQuery("SELECT count(*) FROM BOOKMARKS ", null);
        //if any contact found moveToFirst of that contacts or points to 1st email 
        cursor.moveToFirst();
        //checking columns exhist or not
        if (cursor.getInt(0) > 0)
        {
            //get all the contacts from table 'BOOKMARKS'
            c = db.rawQuery("SELECT * FROM BOOKMARKS", null);
            //get the index of mentiond and required columns 
            ID = c.getColumnIndex("ID");
            booktitl = c.getColumnIndex("Booktiltle");

            audiotime=c.getColumnIndex("BookmarkTime");

            // Check result.
            c.moveToFirst();
            if (c != null) 
            {
                // Loop through all Results
                do 
                {
                    cont = new String[3];
                    cont[0] = Integer.toString(c.getInt(ID));
                    cont[1] = c.getString(booktitl);
                    cont[2] = c.getString(audiotime);
                    audiobooks.add(cont);

                }
                while(c.moveToNext());

c.close();
                db.close();//close db resources 


                ArrayAdapter<String[]> arrayAdapter1=new ArrayAdapter<String[]>(this,  R.layout.row3, R.id.itemr1,audiobooks);
                lv.setAdapter(arrayAdapter1);

リストビューで文字列値を取得するにはどうすればよいですか?実際には、データベースからフェッチして Arraylist に格納する値です。現在、リストビューにいくつかのオブジェクト値を表示していますが、「オーディオブック」が保持するコンテンツを表示したいと考えています。それを解決するのを手伝ってください。

4

2 に答える 2

0

私の理解が正しければ、データベースの各行のデータを ListView に入力する必要があります。データベース行に対応するメンバー変数を使用して、タイプ Audiobook の新しいクラスを作成する必要があります。次に、オブジェクトのデータを表示する必要がある res/layouts フォルダーにレイアウトを作成します。ArrayAdapter クラスを拡張する新しいクラスを作成します。このクラスでは、作成したレイアウトでビューを拡張し、リストビューに子を設定します。次に、メインで新しいアダプターをリストに設定します。

ArrayAdapter は次のようになります。

public class AudiobookAdapter extends ArrayAdapter<Audiobook> {
     //  constructor

     //  here you populate each view and put it in listview
     public View getView (int position, View convertView, ViewGroup parent)
{
    }
}

これはスタートラインです。arrayadapters とカスタム ListView の拡張について詳しく読む必要があります。

于 2012-09-06T11:01:15.683 に答える
0

と呼ばれるオーディオブックを指定しているためArrayAdapter、タイプを指定することはできません。String[]List

また、標準ArrayAdapterが datatype を処理できるかどうかもわかりませんList<String[]>。うまくいかないかもしれません。ArrayAdapter機能しない場合は、拡張して独自の実装を作成する必要があります。

于 2012-09-06T10:54:27.027 に答える