Android将MySQL中数据用ListView显示
时间: 2024-05-13 12:19:10 浏览: 168
要在 Android 应用程序中将 MySQL 数据用 ListView 显示,可以按照以下步骤操作:
1. 创建一个包含 ListView 的布局文件。
2. 在 Java 代码中创建一个继承自 AsyncTask 的类,以便在后台线程中连接到 MySQL 数据库并获取数据。
3. 在 doInBackground() 方法中执行查询数据库的操作,并将结果存储在一个 ArrayList 中。
4. 在 onPostExecute() 方法中,使用 ArrayAdapter 将 ArrayList 中的数据加载到 ListView 中。
以下是一个示例代码,演示如何将 MySQL 数据用 ListView 显示:
1. 在布局文件中添加 ListView:
```
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp"/>
```
2. 创建 AsyncTask 类来连接到 MySQL 数据库并获取数据:
```
private class GetDataFromDatabase extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// 显示进度对话框
}
@Override
protected Void doInBackground(Void... params) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(DB_URL, USER, PASS);
Statement statement = connection.createStatement();
String query = "SELECT * FROM table_name";
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
String data = resultSet.getString("column_name");
dataList.add(data);
}
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// 隐藏进度对话框
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, dataList);
listView.setAdapter(adapter);
}
}
```
3. 在 onCreate() 方法中执行 AsyncTask:
```
listView = (ListView) findViewById(R.id.list_view);
new GetDataFromDatabase().execute();
```
这样就可以将 MySQL 数据用 ListView 显示了。注意,为了安全起见,请确保在连接到 MySQL 数据库时使用正确的用户名和密码,并使用预编译语句来防止 SQL 注入攻击。
阅读全文