Android将MySQL中数据用ListView显示
时间: 2024-06-09 17:05:15 浏览: 88
要在 Android 应用中将 MySQL 数据用 ListView 显示,可以使用以下步骤:
1. 创建一个包含 ListView 和适配器的布局文件。
2. 在应用中创建一个网络请求,连接到 MySQL 数据库并获取数据。
3. 将获取到的数据存储在一个数据模型中。
4. 创建一个自定义适配器,将数据模型中的数据绑定到 ListView 中。
5. 在应用中使用创建的适配器来显示数据。
以下是一个基本示例:
1. 创建布局文件:
list_item.xml
```xml
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp" />
```
activity_main.xml
```xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
```
2. 创建网络请求:
```java
public class NetworkUtils {
public static String getData(String url) {
String result = "";
try {
URL apiUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) apiUrl.openConnection();
conn.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
result += inputLine;
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
```
3. 创建数据模型:
```java
public class User {
private String name;
private String email;
public User(String name, String email) {
this.name = name;
this.email = email;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
}
```
4. 创建适配器:
```java
public class UserAdapter extends ArrayAdapter<User> {
private Context context;
private int resource;
public UserAdapter(Context context, int resource, List<User> objects) {
super(context, resource, objects);
this.context = context;
this.resource = resource;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = convertView;
if (view == null) {
view = LayoutInflater.from(context).inflate(resource, parent, false);
}
User user = getItem(position);
if (user != null) {
TextView tvName = view.findViewById(R.id.tv_name);
TextView tvEmail = view.findViewById(R.id.tv_email);
tvName.setText(user.getName());
tvEmail.setText(user.getEmail());
}
return view;
}
}
```
5. 在 MainActivity 中使用适配器显示数据:
```java
public class MainActivity extends AppCompatActivity {
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
String url = "http://example.com/get_users.php";
String result = NetworkUtils.getData(url);
List<User> userList = new ArrayList<>();
try {
JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
String email = jsonObject.getString("email");
User user = new User(name, email);
userList.add(user);
}
} catch (JSONException e) {
e.printStackTrace();
}
UserAdapter userAdapter = new UserAdapter(this, R.layout.list_item, userList);
listView.setAdapter(userAdapter);
}
}
```
以上就是将 MySQL 数据用 ListView 显示的基本步骤。注意,这只是一个简单的示例,实际应用中还需要考虑网络安全性、数据缓存、异常处理等方面。
阅读全文