使用Android studio 创建<mydb.db>数据库,并创建<mytable>数据表内含_id、no、name字段,其中_id为自动编号,no为数值,name为字符串,创建后自动新增5条记录,并使用ListView由小至大排序显示全部数据。在edtID字段输入编号后点击查询按钮可以查询指定编号的数据,点击查询全部按钮显示全部数据。
时间: 2024-03-19 11:45:33 浏览: 236
DB_Conn_Pool.rar_创建数据库_数据库 连接池_数据库连接池_连接池
好的,让我们逐步来完成这个任务。
1. 创建数据库和数据表
首先,在Android Studio中创建一个新项目,在app目录下创建名为“databases”的文件夹。接着,在databases文件夹下新建一个名为“mydb.db”的数据库文件。打开Terminal窗口,进入databases文件夹,输入以下命令创建数据库表:
```
sqlite3 mydb.db
CREATE TABLE mytable (_id INTEGER PRIMARY KEY AUTOINCREMENT, no INTEGER, name TEXT);
INSERT INTO mytable (no, name) VALUES (1, 'John');
INSERT INTO mytable (no, name) VALUES (2, 'Mary');
INSERT INTO mytable (no, name) VALUES (3, 'Tom');
INSERT INTO mytable (no, name) VALUES (4, 'Kate');
INSERT INTO mytable (no, name) VALUES (5, 'Peter');
.quit
```
这样,数据库表和初始数据就创建好了。
2. 编写布局文件
接着,我们需要编写布局文件来显示数据和提供查询功能。在app/res/layout目录下创建一个名为“activity_main.xml”的布局文件,代码如下:
```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/edtID"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="输入编号查询" />
<Button
android:id="@+id/btnSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询" />
<Button
android:id="@+id/btnShowAll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="显示全部" />
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
```
3. 编写Java代码
接下来,我们需要编写Java代码来实现查询和显示功能。在MainActivity类中,添加如下代码:
```
public class MainActivity extends AppCompatActivity {
EditText edtID;
Button btnSearch, btnShowAll;
ListView listView;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtID = findViewById(R.id.edtID);
btnSearch = findViewById(R.id.btnSearch);
btnShowAll = findViewById(R.id.btnShowAll);
listView = findViewById(R.id.listView);
// 打开数据库
db = SQLiteDatabase.openOrCreateDatabase(getFilesDir().getAbsolutePath() + "/databases/mydb.db", null);
// 查询全部数据并显示
showAllData();
// 查询指定编号数据
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = Integer.parseInt(edtID.getText().toString());
Cursor cursor = db.query("mytable", null, "no=?", new String[]{String.valueOf(id)}, null, null, null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(MainActivity.this, android.R.layout.simple_list_item_2, cursor, new String[]{"no", "name"}, new int[]{android.R.id.text1, android.R.id.text2}, 0);
listView.setAdapter(adapter);
}
});
// 显示全部数据
btnShowAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAllData();
}
});
}
// 查询全部数据并显示
private void showAllData() {
Cursor cursor = db.query("mytable", null, null, null, null, null, "no ASC");
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[]{"no", "name"}, new int[]{android.R.id.text1, android.R.id.text2}, 0);
listView.setAdapter(adapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
db.close();
}
}
```
这里我们使用了SQLiteOpenHelper类来打开数据库,使用Cursor类来获取查询结果,使用SimpleCursorAdapter类来将查询结果显示在ListView中。查询全部数据和查询指定编号数据分别绑定在查询全部按钮和查询按钮的点击事件中。
4. 运行测试
最后,我们运行程序进行测试,输入编号并点击查询按钮,可以看到查询结果被正确显示。点击查询全部按钮,可以看到全部数据从小到大排序后被正确显示。
阅读全文