以下代码有什么问题?
我们的想法是从Android查询本地数据库(SQLite),从而获取此查询产生的数据,并通过JSON将它们发送到MySQL中的中央数据库。
我在这里的解决方案显然应该工作(即在SQLite中从本地数据库发送所有行)。
但实际上这不是发生的事情:它只发送到第一行。有人可以帮我这个吗?我很感激帮助。
ControllerPontos datasource = new ControllerPontos(getApplicationContext());
List<Pontos> pontosJogador = datasource.getRowsNotUploaded();
Log.d("CARREGAMENTO LINHAS: ", "OK");
if(pontosJogador.size() > 0) {
for(Pontos linha : pontosJogador) {
// listagem de elementos da query
String log = "IDInscricao: "+linha.getIDInscricao()+" ,IDMissao: " + linha.getIDMissao() + " ,IDNivel: " + linha.getIDNivel() +
"IDTarefa: "+ linha.getIDTarefa()+"data: "+linha.getData()+"tempo: "+linha.getTempo()+"pontos: "+linha.getPontos();
Log.d("LISTAGEM: ", log);
idPontuacao = linha.getID();
idInscricao = linha.getIDInscricao();
idMissao = linha.getIDMissao();
idNivel = linha.getIDNivel();
idTarefa = linha.getIDTarefa();
data = linha.getData();
tempo = linha.getTempo();
pontos = linha.getPontos();
// vamos fazer o sincronismo linha a linha da tabela
// parametros da lista
Log.d("A CARREGAR ARRAYLIST", "Inicializar");
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("idInscricao", Integer.toBinaryString(idInscricao)));
params.add(new BasicNameValuePair("idMissao", Integer.toBinaryString(idMissao)));
params.add(new BasicNameValuePair("idNivel", Integer.toBinaryString(idNivel)));
params.add(new BasicNameValuePair("idTarefa", Integer.toBinaryString(idTarefa)));
params.add(new BasicNameValuePair("data", data));
params.add(new BasicNameValuePair("tempo", Integer.toBinaryString(tempo)));
params.add(new BasicNameValuePair("pontos", Integer.toBinaryString(pontos)));
Log.d("ENVIO PONTOS", "Inicializar");
// passagem dos dados para o script
JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);
// fazer update da tabela pontuacoes
//datasource.updatePontos(idPontuacao);
// resposta JSON
Log.d("Tentar sincronizacao...", json.toString());
try {
// verificacao do sucesso
sucesso = json.getInt(TAG_SUCESSO);
if(sucesso == 1) {
Log.d("Pontos adicionados!", json.toString());
finish();
return json.getString(TAG_MENSAGEM);
}else{
Log.d("Envio de pontos falhou!", json.getString(TAG_MENSAGEM));
return json.getString(TAG_MENSAGEM);
}
} catch (JSONException e) {
e.printStackTrace();
}
}// fecha FOR
}
else{
Log.d("CARREGAMENTO LINHAS: ", "NAO HA LINHAS");
}
return null;
} // fecha doInBackground
/**
* quando terminar o envio de dados vamos remover a caixa de dialogo
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null){
Toast.makeText(UploadDados.this, file_url, Toast.LENGTH_LONG).show();
}
}
}