2017-02-16 9 views
0

dbからデータをフェッチしている間に問題があり、たとえばarrayListを反復しています。たとえば、sqliteに2つのデータを挿入しました。しかし、私はループの最後の行のデータのみを選択しました。任意の提案は、あなたのループAndroidのSQLiteのみLooping(ArrayList、HashMap)の最新結果を取得

+0

カーソル= DB1を移動

この問題

public void postDataDtl(String DocNo) { database = new ProductDatabase.ProductDatabaseHelper(activityContext); try{ String selectQuery = "select * from BarcodeDtl where DocNo='"+DocNo+"'"; SQLiteDatabase db1 = database.getWritableDatabase(); cursor =db1.rawQuery(selectQuery, null); cursor.moveToFirst(); Barlist = new ArrayList<>(); hashMap = new HashMap<String, String>(); data = new JSONObject(); array = new JSONArray(); while(cursor.isAfterLast()==false) { branch = cursor.getString(cursor.getColumnIndex("Branch")); docno = cursor.getString(cursor.getColumnIndex("DocNo")); time = cursor.getString(cursor.getColumnIndex("Time")); seqno = cursor.getString(cursor.getColumnIndex("SeqNo")); barcode = cursor.getString(cursor.getColumnIndex("Barcode")); qty = cursor.getString(cursor.getColumnIndex("Quantity")); hashMap.put("branch",branch); hashMap.put("docno",docno); hashMap.put("time",time); hashMap.put("seqno",seqno); hashMap.put("barcode",barcode); hashMap.put("qty",qty); Barlist.add(hashMap); cursor.moveToNext(); } //the problem is this for loop getting same result for(int i=0; i<Barlist.size();i++) { data.put("Branch", hashMap.get("branch")); data.put("DocNo", hashMap.get("docno")); data.put("CTime", hashMap.get("time")); data.put("Seq", hashMap.get("seq")); data.put("Barcode", hashMap.get("barcode")); data.put("Qty", hashMap.get("qty")); array.put(data); } // } // array.put(data); }catch (Exception e){ } 

+0

@ ZakiPathan私は – AnthonyTang

+0

の2つのデータを選択しました。私のBarlist.size()も2つと数えます。 – AnthonyTang

答えて

1

ここにあなたのミスである一方、

が移動hashMap = new HashMap<String, String>();にあなたのhashMap = new HashMap<String, String>(); into while loop

、その後

for(int i=0; i<Barlist.size();i++) { 
     HashMap hashMap = Barlist.get(i); // you have to get hashMap from Barlist again. 
     data.put("Branch", hashMap.get("branch")); 
     data.put("DocNo", hashMap.get("docno")); 
     data.put("CTime", hashMap.get("time")); 
     data.put("Seq", hashMap.get("seq")); 
     data.put("Barcode", hashMap.get("barcode")); 
     data.put("Qty", hashMap.get("qty")); 
     array.put(data); 
    } 
+0

返信いただきありがとうございます!それは仕事です! – AnthonyTang

+0

もう一度申し訳ありません、もう1つの質問、String entity = new StringEntity(array.toString()); httppost.setEntity(エンティティ); – AnthonyTang

+0

これはEntityで配列を呼び出す方法ですが、配列で同じ結果が得られていますが、これについて知っていますか? – AnthonyTang

0
を解決するために。 rawQuery(selectQuery、null);あなたは何をカーソルに入れますか? 2つのデータまたは1つ?
関連する問題