リモート Web サーバー上の MySql データベースからデータを取得する Android アプリを作成しました。情報が解析され、リストビューに表示されます。リストビューには、アクティビティを遅くする可能性のある画像も表示されます。どうすればアイテム 0 ~ 9 しか表示できないのだろうと思っていましたが、ボタンをクリックすると 10 ~ 19 が表示されます。「do until」を使用してVBで実行できますが、Android/Javaに関しては、ちょっと迷っています。どんな助けでも大歓迎です。
以下は、それを実装する必要があるクラスです。整数を追加してカウントを保持し、配列をループして「整数」にカウントを追加する前に「DO UNTIL」の形式を実装する必要があると思いますが、ここでそれを行う方法がわかりません。
class ProductQuery extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... file_url) {
// TODO Auto-generated method stub
try{
//Settings to send to PHP
List<NameValuePair> settings = new ArrayList<NameValuePair>();
//Adding Search Criteria(Keyword) to settings
settings.add(new BasicNameValuePair("product", product));
//Getting JSON result from request
JSONObject jObject = jParser.makeHttpRequest(url_to_php, "GET", settings);
//Display JSON in LogCat
Log.d("Product Search", jObject.toString());
//Get Result
int result = jObject.getInt(KEY_RESULT);
//If Result Equals 1 then
if(result==1){
//Getting the KEY_PRODUCTS
products = jObject.getJSONArray(KEY_PRODUCTS);
//Loop through Array
for(int i = 0; i < products.length();i++){
JSONObject x = products.getJSONObject(i);
String proPid = x.getString(KEY_PRODID);
String name = x.getString(KEY_NAME);
String price = x.getString(KEY_PRICE);
String desc = x.getString(KEY_DESCRIPTION);
String img = x.getString(KEY_IMAGE);
// creating new HashMap
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put(KEY_PRODID, proPid);
hmap.put(KEY_NAME, name);
hmap.put(KEY_PRICE, price);
hmap.put(KEY_DESCRIPTION, desc);
hmap.put(KEY_IMAGE, img);
//Hash to ArrayList
myproducts.add(hmap);
}
} else {
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}