gpt4 book ai didi

android - 如何在 ListView 中显示来自mysql的多行数据?

转载 作者:行者123 更新时间:2023-11-30 01:42:20 26 4
gpt4 key购买 nike

如何在 ListView 中显示多行数据?

现在我一次只能检索和显示一个数据(Item),我想检索多行数据(Items)并将它们全部显示在 ListView 中。

在本例中,我使用用户的姓名来检索他/她在数据库中拥有的优惠券。所以我只能显示一张优惠券,我想知道如何在 ListView 中显示多张优惠券。

    protected String doInBackground(String... args) {
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));


JSONObject json = jsonParser.makeHttpRequest(
url_all_coupons, "GET", params);


Log.d("Single Voucher Details", json.toString());

// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {

JSONArray productObj = json
.getJSONArray(TAG_COUPONS); // JSON Array


JSONObject coupons = productObj.getJSONObject(0);

最佳答案

要填充 ListView,我建议您创建一个对象(优惠券)的 List 并创建一个知道如何显示任何数字的 Adapter列表中的优惠券。首先,您可能想为您的优惠券定义一个简单的类(根据您的数据结构重新实现):

public class Coupon {
private String mCouponText;

public Coupon(String text) {
mCouponText = text;
}

public String getCouponText() {
return mCouponText;
}
}

之后,您应该从 JSONArray 创建这些对象的列表。有不同的方法,其中之一:

List<Coupon> couponsList = new ArrayList<>();
JSONArray coupons = json
.getJSONArray(TAG_COUPONS); // JSON Array
for (JSONObject coupon : (Iterable<JSONObject>) coupons) {
String text = coupon.get("text");
couponsList.add(new Coupon(text));
}

最后要做的是创建一个 Adapter 并将其设置为 ActivityListView 的适配器:

ArrayAdapter<Coupon> adapter = new ArrayAdapter<>(this, 
android.R.layout.simple_list_item_1, couponsList);
yourListView.setAdapter(adapter);

之后 ListView 将使用 Adapter 来填充它的行。您可能想要实现自己的适配器,因为它为您提供了更多选择,您将很容易找到如何去做。

更新

考虑使用 RecyclerView相反。

关于android - 如何在 ListView 中显示来自mysql的多行数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com