Autore Topic: Database SQLite remoto  (Letto 1442 volte)

Offline allemattio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac Os 10.6
Database SQLite remoto
« il: 15 Marzo 2011, 16:40:05 CET »
0
Come da titolo,
avrei bisogno di connettermi a un Database SQLite remoto(tramite internet) ma non riesco a capire come posso fare...
qualcuno mi sa aiutare?

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:Database SQLite remoto
« Risposta #1 il: 16 Marzo 2011, 13:45:12 CET »
0
mi accodo alla tua richiesta.

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Database SQLite remoto
« Risposta #2 il: 16 Marzo 2011, 14:55:25 CET »
0
Credo che possiate tenere buono questo approccio:

Connecting to MySQL database | Hello Android

Offline allemattio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac Os 10.6
Re:Database SQLite remoto
« Risposta #3 il: 17 Marzo 2011, 15:24:51 CET »
0
ok sono riuscito a stabilire la connessione in remoto..

adesso mi trovo davanti a un altro problema enorme..almeno per me..

anziche un cursor, viene ritornato un Array di JSONObjects...

come posso riempire una List con questo array?

ho provato a creare un ArrayAdapter<JSONObjects> ma non viene riconosciuto...

dove sbaglio? c'è un possiblie suggerimento per fare quello che vorrei fare?


Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Database SQLite remoto
« Risposta #4 il: 17 Marzo 2011, 15:29:45 CET »
0
"ho provato a creare un ArrayAdapter<JSONObjects> ma non viene riconosciuto"

così non possiamo capire nulla.
posta un po di codice.

Offline allemattio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac Os 10.6
Re:Database SQLite remoto
« Risposta #5 il: 17 Marzo 2011, 15:46:11 CET »
0
Codice (Java): [Seleziona]
import org.json.JSONArray;
import org.json.JSONObject;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;

public class ListaApp extends ListActivity {
private AppDBAdapter mDbHelper;
public Context mContextClasse;
        @Override
        public void onCreate(Bundle savedInstanceState) {
                  super.onCreate(savedInstanceState);
                 
               
                  mDbHelper = new AppDBAdapter(this);
                mDbHelper.open();
                riempiLista();
                  ListView lv = getListView();
                  lv.setTextFilterEnabled(true);
                 
                  mContextClasse=this;
                  lv.setOnItemClickListener(new OnItemClickListener() {
                    public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                       
                       
                        Intent i = new Intent(getApplicationContext(), DettagliApp.class);
                i.putExtra(AppDBAdapter.ID, id);
               
                startActivity(i);
                     
                    }
                  });
                }
       
       
        private void riempiLista() {
       
        JSONArray jArray = mDbHelper.getApps();
               

        ArrayAdapter<JSONObject> listaArrayAdapter = new ArrayAdapter<JSONObject>(this, R.layout.list_item, jArray);
       
       
     
 

        setAdapter(listaArrayAdapter);
    }
}


mi dice che il costruttore ArrayAdapter<JSONObject> non esiste...c'è un altro metodo?
il metodo mDbHelper.getApps() ritorna un array di JSONObject.

il codice di mDbHelper.getApps() è:

Codice (Java): [Seleziona]
public JSONArray getApps() {
                ricercaPhp("","",(long)0);
        //return mDb.query(false,DATABASE_TABLE, new String[] {ID, NOME,GENERE,AUTORE,DESCR,PATH}, null, null, null, null, NOME, null);
                return jArray;
    }


Mentre ricercaPhp() é:

Codice (Java): [Seleziona]
public void ricercaPhp(String mTipoRicerca,String mParam,Long id){
       
        String result = "";
        //the year data to send
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
       
        if (mTipoRicerca.compareTo("Nome")==0)
                nameValuePairs.add(new BasicNameValuePair(mTipoRicerca,mParam));
         
        //http post
        try{
                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httppost = new HttpPost("http://allemattio.selfip.info/~alessandro/AppDownloader/getApps.php");
                        if (mTipoRicerca.compareTo("Nome")==0){
                                nameValuePairs.add(new BasicNameValuePair(mTipoRicerca,mParam));
                                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                        }
               
               
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                InputStream is = entity.getContent();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                }
                is.close();
         
                result=sb.toString();
               
        }catch(Exception e){
                Log.e("log_tag", "Error in http connection "+e.toString());
        }
        //convert response to string
       
         
        //parse json data
        try{
                jArray = new JSONArray(result);
         
        }
        catch(JSONException e){
                Log.e("log_tag", "Error parsing data "+e.toString());
        }
       
   
    }

jArray è pubblico...


magari non ho le idee molto chiare..è da poco che programmo...