0

SQLiteからリストビューにデータを挿入しようとしています。サンプルコードを探してみましたが、機能しません。データベース部分は、AndroidHiveのSQLチュートリアルからのものです。彼の投稿では、DB内のすべてのデータを取得するためのコードは(データフィールドを編集しました):

// Getting All carts item
public List<Cart> getAllCart() {
    List<Cart> cartList = new ArrayList<Cart>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + TABLE;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            Cart cart = new Cart();
            cart.setID(Integer.parseInt(cursor.getString(0)));
            cart.setPID(Integer.parseInt(cursor.getString(1)));
            cart.setName(cursor.getString(2));
            cart.setPrice(Double.parseDouble(cursor.getString(3)));
            cart.setQut(Integer.parseInt(cursor.getString(4)));
            // Adding cart to list
            cartList.add(cart);
        } while (cursor.moveToNext());
    }

    // return cart list
    return cartList;
}

この「getAllCart()」をリストビューに配置するにはどうすればよいですか。どうもありがとう!!

4

2 に答える 2

0

getAllCartとしてアクセスするには、Activity または ListActivity に Database クラスのインスタンスを作成する必要があります。

public class TempActivity extends Activity {
DatabaseHandler db;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        db = new DatabaseHandler(TempActivity.this);

        // Reading all Carts
        List<Cart> Carts = db.getAllCart(); //<< get all Cart details here    
       //... your code here..  

また、ListView でカートの ArrayList 値を表示するには、ListView の行にすべての項目を追加するためのカスタム アダプターを作成する必要があります。

Create ListView with Custom Adapter については、次のチュートリアルを表示できます。

カスタム ArrayAdapter を使用した Android ListView 項目のカスタマイズ

Android リストビューの例

于 2013-01-26T06:28:19.370 に答える
0

SQLite からデータを取得するには、次のように試すことができます。

      public List<String[]> selectAll()
{

    List<String[]> list = new ArrayList<String[]>();
    Cursor cursor = db.query(TABLE_NAME, new String[] { "id","name","number","skypeId","address" },
            null, null, null, null, "name asc"); 

    int x=0;
    if (cursor.moveToFirst()) {
        do {
            String[] b1=new String[]{cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4)};

            list.add(b1);

            x=x+1;
        } while (cursor.moveToNext());
    }
    if (cursor != null && !cursor.isClosed()) {
        cursor.close();
    } 
    cursor.close();

    return list;
}

リストビューで表示するには:

    List<String[]> list = new ArrayList<String[]>();
List<String[]> names2 =null ;
     names2 = dm.selectAll();

    stg1=new String[names2.size()]; 

    int x=0;
    String stg;

    for (String[] name : names2) {
        stg = name[1]+" - "+name[2]+ " - "+name[3]+" - "+name[4];

        stg1[x]=stg;
        x++;
    }


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(   
            this,android.R.layout.simple_list_item_1,   
            stg1);
    this.setListAdapter(adapter);
}      

このチュートリアルを参照すると、アイデアが得られます: http://www.vogella.com/articles/AndroidSQLite/article.html

于 2013-01-26T06:29:11.283 に答える