HashMap을 JSON Array로 변환하여 어댑터에서 사용하는 방법을 알고있는 사람이 있는지 물어보고 싶습니다. 논리는 로그인 할 때, Volley를 사용하여 웹 서버에서 데이터를 가져 와서 SQLite 데이터베이스에 저장하고 동시에 사용자 지정 목록보기에서 검색 데이터를 표시합니다. 문제는 응용 프로그램에서 다른 조각으로 이동 한 다음 돌아가는 경우 발리에서 다시 소요될 시간을 요청합니다. 필자는 SQLite 데이터베이스에 저장된 데이터를 검색하고 SwipeRefresh를 사용하여 데이터를 업데이트하려는 경우 새로운 데이터를 업데이트 할 시간을 가져 왔으면합니다.Hashmap to JSON Array
여기 내 코드입니다.
public void LoadMarkets()
{
Map<String,String>tmpRate = new HashMap<String,String>();
RateDb db = new RateDb(getActivity().getApplicationContext());
Cursor rs = db.getData();
if(rs!=null && rs.getCount()>0)
{
if(rs.moveToFirst())
{
while(rs.moveToNext())
{
tmpRate.put("rateID",rs.getString(rs.getColumnIndex(RateDb.rateID)));
tmpRate.put("Name",rs.getString(rs.getColumnIndex(RateDb.rateName)));
tmpRate.put("Rate",rs.getString(rs.getColumnIndex(RateDb.rateRate)));
tmpRate.put("Date",rs.getString(rs.getColumnIndex(RateDb.rateDate)));
tmpRate.put("Time",rs.getString(rs.getColumnIndex(RateDb.rateTime)));
tmpRate.put("Ask",rs.getString(rs.getColumnIndex(RateDb.rateAsk)));
tmpRate.put("Bid",rs.getString(rs.getColumnIndex(RateDb.rateBid)));
tmpRate.put("Balance",rs.getString(rs.getColumnIndex(RateDb.rateBalance)));
//Log.d("MyDebug",rs.getString(rs.getColumnIndex(RateDb.rateName)));
}
}
}
rs.close();
db.close();
JSONObject jsonObject = new JSONObject(tmpRate);
JSONArray jsonArray = new JSONArray();
jsonArray.put(jsonObject);
RowAAdapter rowAAdapter = new RowAAdapter(getActivity(),jsonArray);
lvMarkets.setAdapter(rowAAdapter);
swipeRefreshLayout.setRefreshing(false);
}
문제는이 기능을로드 할 때 마지막 데이터 만 표시된다는 것입니다.
제 문제로 저를 도울 수 있기를 바랍니다.
대단히 감사합니다.
해시 맵을 사용하는 이유는 무엇입니까? hashmap을 넣는 것처럼 값을 jsonObject에 직접 입력 할 수 있습니다. –
어떻게? 하지만 그것은 똑같은 생각하고 JSONArray로 어댑터가 설정되어 있기 때문에 내가 jsonarray 싶었어요 – Raven
대답을 확인하십시오 –