データベースからいくつかのレコードを表示するListViewを作成しました。これはうまくいきます。また、誰かがListViewからアイテムをクリックしたときに、正しいIDと商品名が表示されるようにしたい。私の場合、アイテムをクリックするたびに、最後のレコードだけが表示されます。この問題を解決するために私は何ができますか?事前にListViewでsetOnItemClickListenerを使用してデータベースからプログラムでIDを表示する方法
public static final String ID = "id";
public static final String PRODUCT_NAME = "productName";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, showProductsUrl, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("products");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
final String productId = jsonObject.getString("id");
final String productName = jsonObject.getString("productName");
HashMap<String, String> product = new HashMap<>();
product.put(ID, productId);
product.put(PRODUCT_NAME, productName);
productList.add(product);
String[] from = {PRODUCT_NAME};
int[] to = {R.id.productName};
ListAdapter adapter = new SimpleAdapter(getApplicationContext(), productList, R.layout.list_products_to_buy, from, to);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
System.out.println(productId + " " + productName);
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
ありがとう:
は、ここに私のコードです!
あなたがループの内側からこの – Real73