91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android怎么用gridview連接數據庫

小億
95
2023-12-23 10:43:31
欄目: 編程語言

在Android中,可以使用GridView來顯示數據庫中的數據。下面是使用GridView連接數據庫的一般步驟:

  1. 創建一個數據庫幫助器類,繼承自SQLiteOpenHelper類,用于創建和管理數據庫。在該類的構造函數中,可以指定數據庫的名稱和版本號,以及創建數據庫表的SQL語句。

  2. 在數據庫幫助器類中創建一個方法,用于查詢數據庫中的數據并返回一個Cursor對象。

  3. 在Activity中實例化數據庫幫助器類,并調用查詢方法獲取Cursor對象。

  4. 創建一個自定義的Adapter類,繼承自BaseAdapter類,用于將數據庫中的數據綁定到GridView中的每個項。

  5. 在Adapter類中實現getView()方法,用于設置每個項的顯示內容。

  6. 在Activity中實例化GridView,并通過setAdapter()方法將Adapter對象設置給GridView。

以下是一個簡單的示例代碼:

public class MainActivity extends AppCompatActivity {
    private GridView gridView;
    private MyAdapter adapter;
    private MyDatabaseHelper dbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        gridView = findViewById(R.id.gridview);

        // 實例化數據庫幫助器類
        dbHelper = new MyDatabaseHelper(this);

        // 查詢數據庫并獲取Cursor對象
        Cursor cursor = dbHelper.getData();

        // 實例化自定義Adapter類
        adapter = new MyAdapter(this, cursor);

        // 設置Adapter
        gridView.setAdapter(adapter);
    }
}

public class MyDatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "mydatabase.db";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_NAME = "mytable";
    private static final String COLUMN_ID = "_id";
    private static final String COLUMN_NAME = "name";

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String createTableQuery = "CREATE TABLE " + TABLE_NAME + "(" +
                COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                COLUMN_NAME + " TEXT)";
        db.execSQL(createTableQuery);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String dropTableQuery = "DROP TABLE IF EXISTS " + TABLE_NAME;
        db.execSQL(dropTableQuery);
        onCreate(db);
    }

    public Cursor getData() {
        SQLiteDatabase db = getReadableDatabase();
        String[] columns = {COLUMN_ID, COLUMN_NAME};
        return db.query(TABLE_NAME, columns, null, null, null, null, null);
    }
}

public class MyAdapter extends BaseAdapter {
    private Context context;
    private Cursor cursor;

    public MyAdapter(Context context, Cursor cursor) {
        this.context = context;
        this.cursor = cursor;
    }

    @Override
    public int getCount() {
        return cursor.getCount();
    }

    @Override
    public Object getItem(int position) {
        cursor.moveToPosition(position);
        return cursor.getString(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_NAME));
    }

    @Override
    public long getItemId(int position) {
        cursor.moveToPosition(position);
        return cursor.getLong(cursor.getColumnIndex(MyDatabaseHelper.COLUMN_ID));
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.grid_item, parent, false);
        }

        TextView textView = convertView.findViewById(R.id.textview);
        textView.setText((String) getItem(position));

        return convertView;
    }
}

這是一個基本的示例,你可以根據自己的需求來修改和擴展。請注意,上述代碼只提供了簡單的數據庫連接和GridView的顯示,如果需要進行數據添加、修改和刪除等操作,還需要適當地修改代碼。同時,為了保證數據庫的安全性,還需要對數據庫進行適當的操作。

0
顺义区| 蒲城县| 辰溪县| 通道| 九龙坡区| 夏津县| 鄂托克前旗| 福清市| 泽州县| 绵阳市| 乌拉特中旗| 澄迈县| 齐齐哈尔市| 特克斯县| 温州市| 临沭县| 五指山市| 洛南县| 吐鲁番市| 大连市| 霍林郭勒市| 钦州市| 县级市| 沙坪坝区| 桐柏县| 栾川县| 宁城县| 葵青区| 盐源县| 会同县| 榆树市| 新田县| 孟州市| 东丰县| 鸡东县| 德清县| 中牟县| 武宣县| 垦利县| 沂源县| 阿坝县|