Autore Topic: Database Microsoft Access  (Letto 1149 volte)

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Database Microsoft Access
« il: 18 Giugno 2014, 13:57:28 CEST »
0
Buon Giorno a tutti ho in mente un'applicazione che dovrebbe interagire con un database in rete locale di una azienda costruito in Microsoft Access è possibile esiste un driver?

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Database Microsoft Access
« Risposta #1 il: 22 Agosto 2014, 08:55:08 CEST »
0
Sto provando con il php,ho creato lato php questo script:
Codice: [Seleziona]
<?php
$pw = "gmpa";
require_once ("config.php");
$variab = $_REQUEST['VARIABLE'];
$cn = new COM("ADODB.Connection") or die("Cannot start ADO");
$cn->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Jet OLEDB:Database Password=gmpa;Data Source=C:\Users\Paolo\Dropbox\Programmazione\c#\dati.mdb;");
//$query = "SELECT * FROM table WHERE (Variable = '".$variab."')";
$query = "SELECT * FROM WHERE (Variable = '".$variab."')";
$data = $cn->Execute($query);

while (!$data->EOF)
{

    echo $data ->Fields[0]->value . ":";
    //echo $data ->Fields[1]->value . " \n";

    $data ->MoveNext();
}
?>

e ho verificato e funziona.

Poi nel lato android ho fatto direttamente nella mia activity principale una cosa semlicissima per vedere se funzionava il collegamento ma non va mi dice problem connection,come menzionato nel blocco try cach. DOVE SBAGLIO devo mettere il tutto in un blocco asynkTask?

Codice: [Seleziona]
package com.example.access;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String pippo = "tipipag";
        connect_access(pippo);
    }
   
    public void connect_access(String vars)
    {
            List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
            itemstring.add(new BasicNameValuePair("VARIABLE", vars));
            HttpClient httpclient = new DefaultHttpClient();
            HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
           
            try
        {
            HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
                    //HttpPost httppost = new HttpPost("localhost/access/provaRicerca.php");
            httppost.setEntity(new UrlEncodedFormEntity(itemstring));
            HttpResponse response = httpclient.execute(httppost);
            InputStream content = response.getEntity().getContent();
            BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
            String s;
            while ((s = buffer.readLine()) != null) {

                    Toast.makeText(getApplicationContext(),
                                        "Valori tapipag: " + s,
                                        Toast.LENGTH_LONG).show();

            }

         }catch (Exception e) {
            Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
         }
    }
}

Questo è manifest :

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.access"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
           
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
               
            </intent-filter>
        </activity>
       
    </application>
   

   
</manifest>
« Ultima modifica: 22 Agosto 2014, 08:57:55 CEST da nio74 »

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Database Microsoft Access
« Risposta #2 il: 22 Agosto 2014, 09:15:39 CEST »
0
Le operazioni di rete da android 4 vanno inserite dentro i thread oppure gli asynctask..se cerchi nel forum trovi guide su come fare il tutto


Oppure utilizzando delle librerie fatte da altri utenti( nel forum ne vengono menzionate alcune di cui non ricordo il nome)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Database Microsoft Access
« Risposta #3 il: 22 Agosto 2014, 09:52:02 CEST »
0
Cerca la libreria asynkhttp.
Perfetta

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Database Microsoft Access
« Risposta #4 il: 22 Agosto 2014, 17:41:02 CEST »
0
grazie adesso faccio qualche ricerca

Post unito: 23 Agosto 2014, 08:02:19 CEST
non riesco a capire come fare trovo qualche buonanima che mi aiuta ho provato a fare cosi,mettere tutta la mia richiesta dei dati in doInBackground e poi richiamare asynktask con il metodo execute.

Codice: [Seleziona]
package com.example.access;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

       
    @Override
    protected void onCreate(Bundle savedInstanceState)
   
    {
            TaskAsincrono mAuthTask = null;
         
            super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Mostro un alert
       
        mAuthTask = new TaskAsincrono();
        mAuthTask.execute();
       
    }
    public class TaskAsincrono  extends AsyncTask<String, String, Void>{
           
           
           
   
               
                protected Void doInBackground(String... params) {
                       
                       
                        List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
                itemstring.add(new BasicNameValuePair("VARIABLE", vars));
                HttpClient httpclient = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
                   
                    try
                {
                    HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
                    httppost.setEntity(new UrlEncodedFormEntity(itemstring));
                    HttpResponse response = httpclient.execute(httppost);
                    InputStream content = response.getEntity().getContent();
                    BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                    String s;
                   
                   
                    while ((s = buffer.readLine()) != null) {

                            Toast.makeText(getApplicationContext(),
                                                "UserName Passato: " + s,
                                                Toast.LENGTH_LONG).show();

                    }

                 }catch (Exception e) {
                    Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                 }
                        return null;
                }
           
    }/*
    public void connect_access(String vars)
    {
            List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
        itemstring.add(new BasicNameValuePair("VARIABLE", vars));
        HttpClient httpclient = new DefaultHttpClient();
        HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
           
            try
        {
            HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
            httppost.setEntity(new UrlEncodedFormEntity(itemstring));
            HttpResponse response = httpclient.execute(httppost);
            InputStream content = response.getEntity().getContent();
            BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
            String s;
           
           
            while ((s = buffer.readLine()) != null) {

                    Toast.makeText(getApplicationContext(),
                                        "UserName Passato: " + s,
                                        Toast.LENGTH_LONG).show();

            }

         }catch (Exception e) {
            Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
            e.printStackTrace();
         }
    }*/
}

« Ultima modifica: 23 Agosto 2014, 08:02:29 CEST da nio74, Reason: Merged DoublePost »

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Database Microsoft Access
« Risposta #5 il: 23 Agosto 2014, 11:51:21 CEST »
0
E ora che problema da??

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Database Microsoft Access
« Risposta #6 il: 23 Agosto 2014, 12:36:29 CEST »
0
non riesco a capire come passare il valore della variabile vars al metodo doInBackground.Non ho capito bene :-( sto seguendo questo tutorial http://stackoverflow.com/questions/16207862/external-ms-access-database-connectivity-in-my-android-application
« Ultima modifica: 23 Agosto 2014, 12:39:30 CEST da nio74 »

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Database Microsoft Access
« Risposta #7 il: 23 Agosto 2014, 12:44:10 CEST »
0
grazie adesso faccio qualche ricerca

Post unito: 23 Agosto 2014, 08:02:19 CEST
non riesco a capire come fare trovo qualche buonanima che mi aiuta ho provato a fare cosi,mettere tutta la mia richiesta dei dati in doInBackground e poi richiamare asynktask con il metodo execute.


questa sarebbe una possibilita


Codice: [Seleziona]
package com.example.access;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

       
    @Override
    protected void onCreate(Bundle savedInstanceState)
   
    {
            TaskAsincrono mAuthTask = null;
         
            super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Mostro un alert
[b]        String vars="";[/b]
        mAuthTask = new TaskAsincrono();
[b]        mAuthTask.execute(vars);[/b]
       
    }
    public class TaskAsincrono  extends AsyncTask<String, String, Void>{

                protected Void doInBackground(String... params) {
[b]                        //qui andrebbe controllata la validità del dato
                        String vars=params[0];[/b]
                        List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
                itemstring.add(new BasicNameValuePair("VARIABLE", vars));
                HttpClient httpclient = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
                   
                    try
                {
                    HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
                    httppost.setEntity(new UrlEncodedFormEntity(itemstring));
                    HttpResponse response = httpclient.execute(httppost);
                    InputStream content = response.getEntity().getContent();
                    BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                    String s;
                   
                   
                    while ((s = buffer.readLine()) != null) {

                            Toast.makeText(getApplicationContext(),
                                                "UserName Passato: " + s,
                                                Toast.LENGTH_LONG).show();

                    }

                 }catch (Exception e) {
                    Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                 }
                        return null;
                }
           
    }
}


come vedi passo un argomento dentro il metodo execute e essendo una stringa la ritrovo come primo parametro in params

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Database Microsoft Access
« Risposta #8 il: 23 Agosto 2014, 13:24:39 CEST »
0
Bhe un asynk è una classe. Quindi può avere un costruttore.

String testo ="prova"
MyTask task = new MyTask("testo")
task.execute()

E dentro la classe MyTask crei la variabile String prova;
Nel costruttore sara: public MyTask(String str){}

Ovviamente dentro fai this.prova=str;

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Database Microsoft Access
« Risposta #9 il: 23 Agosto 2014, 14:47:05 CEST »
0

questa sarebbe una possibilita


Codice: [Seleziona]
package com.example.access;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

       
    @Override
    protected void onCreate(Bundle savedInstanceState)
   
    {
            TaskAsincrono mAuthTask = null;
         
            super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Mostro un alert
[b]        String vars="";[/b]
        mAuthTask = new TaskAsincrono();
[b]        mAuthTask.execute(vars);[/b]
       
    }
    public class TaskAsincrono  extends AsyncTask<String, String, Void>{

                protected Void doInBackground(String... params) {
[b]                        //qui andrebbe controllata la validità del dato
                        String vars=params[0];[/b]
                        List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
                itemstring.add(new BasicNameValuePair("VARIABLE", vars));
                HttpClient httpclient = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
                   
                    try
                {
                    HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
                    httppost.setEntity(new UrlEncodedFormEntity(itemstring));
                    HttpResponse response = httpclient.execute(httppost);
                    InputStream content = response.getEntity().getContent();
                    BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                    String s;
                   
                   
                    while ((s = buffer.readLine()) != null) {

                            Toast.makeText(getApplicationContext(),
                                                "UserName Passato: " + s,
                                                Toast.LENGTH_LONG).show();

                    }

                 }catch (Exception e) {
                    Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                 }
                        return null;
                }
           
    }
}


come vedi passo un argomento dentro il metodo execute e essendo una stringa la ritrovo come primo parametro in params

Cosi mi pare corretto solo che non vedo il risultato del toast,è perche devo aggiornare la gui dal metodo onPostExecute? se ho capito bene la classe asynk ha tre metodi uno prima ch inizializza la gui uno in background e uno dopo,l'ho spiegato propio terra terra.

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Database Microsoft Access
« Risposta #10 il: 23 Agosto 2014, 14:48:53 CEST »
0
Esatto..il toast bon lo vedi o ha un risultato sbagliato??

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 27
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Database Microsoft Access
« Risposta #11 il: 24 Agosto 2014, 07:18:47 CEST »
0
Allora è partito ma mi da errore dopo un po crasha credevo fosse il ciclo while ma ho provato a commentarlo ma niente da fare.questo è il log cat
Codice: [Seleziona]
08-24 05:14:34.202: I/dalvikvm(706): threadid=3: reacting to signal 3
08-24 05:14:34.432: I/dalvikvm(706): Wrote stack traces to '/data/anr/traces.txt'
08-24 05:14:34.602: D/gralloc_goldfish(706): Emulator without GPU emulation detected.
08-24 05:14:34.682: I/dalvikvm(706): threadid=3: reacting to signal 3
08-24 05:14:34.692: I/dalvikvm(706): Wrote stack traces to '/data/anr/traces.txt'
08-24 05:14:45.142: W/dalvikvm(706): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
08-24 05:14:45.212: E/AndroidRuntime(706): FATAL EXCEPTION: AsyncTask #1
08-24 05:14:45.212: E/AndroidRuntime(706): java.lang.RuntimeException: An error occured while executing doInBackground()
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.os.AsyncTask$3.done(AsyncTask.java:278)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.lang.Thread.run(Thread.java:856)
08-24 05:14:45.212: E/AndroidRuntime(706): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.os.Handler.<init>(Handler.java:121)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast$TN.<init>(Toast.java:317)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast.<init>(Toast.java:91)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast.makeText(Toast.java:233)
08-24 05:14:45.212: E/AndroidRuntime(706):         at com.example.access.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:75)
08-24 05:14:45.212: E/AndroidRuntime(706):         at com.example.access.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:1)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.os.AsyncTask$2.call(AsyncTask.java:264)
08-24 05:14:45.212: E/AndroidRuntime(706):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-24 05:14:45.212: E/AndroidRuntime(706):         ... 5 more

questo è il codice della activity

Codice: [Seleziona]
package com.example.access;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpConnectionParams;

import android.app.Activity;
import android.app.Application;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

   
    @Override
    protected void onCreate(Bundle savedInstanceState)
   
    {
            TaskAsincrono mAuthTask = null;
         
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        String vars="tipipag";
        mAuthTask = new TaskAsincrono();
        mAuthTask.execute(vars);
       
    }
    public class TaskAsincrono  extends AsyncTask<String, String, Void>{

                protected Void doInBackground(String... params) {
                //qui andrebbe controllata la validità del dato
                String vars=params[0];
                List<NameValuePair> itemstring = new ArrayList<NameValuePair>();
                itemstring.add(new BasicNameValuePair("VARIABLE", vars));
                HttpClient httpclient = new DefaultHttpClient();
                HttpConnectionParams.setConnectionTimeout(httpclient.getParams(), 10000);
                   
                    try
                {
                    HttpPost httppost = new HttpPost("http://10.0.2.2:8080/access/provaRicerca.php");
                    httppost.setEntity(new UrlEncodedFormEntity(itemstring));
                    HttpResponse response = httpclient.execute(httppost);
                    InputStream content = response.getEntity().getContent();
                    BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
                    String s;
                   
                   
                    while ((s = buffer.readLine()) != null) {

                            Toast.makeText(getApplicationContext(),
                                                "valore: " + s,
                                                Toast.LENGTH_LONG).show();

                           
                           
                    }

                 }catch (Exception e) {
                    Toast.makeText(getApplicationContext(),"Connection Problem !", Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                 }
                        return null;
                }
           
    }
}

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Database Microsoft Access
« Risposta #12 il: 24 Agosto 2014, 08:45:08 CEST »
0
Cant create handler insidie a thread that has not call Looper.prepare()

Offline ciopper90

  • Utente junior
  • **
  • Post: 106
  • Respect: +4
    • Mostra profilo
Re:Database Microsoft Access
« Risposta #13 il: 24 Agosto 2014, 10:47:25 CEST »
0
L'errore si trova alla riga 75 di MainActivity
che dovrebbe corrispondere al toast

08-24 05:14:45.212: E/AndroidRuntime(706): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.os.Handler.<init>(Handler.java:121)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast$TN.<init>(Toast.java:317)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast.<init>(Toast.java:91)
08-24 05:14:45.212: E/AndroidRuntime(706):         at android.widget.Toast.makeText(Toast.java:233)
08-24 05:14:45.212: E/AndroidRuntime(706):         at com.example.access.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:75)
08-24 05:14:45.212: E/AndroidRuntime(706):         at com.example.access.MainActivity$TaskAsincrono.doInBackground(MainActivity.java:1)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Database Microsoft Access
« Risposta #14 il: 24 Agosto 2014, 11:31:45 CEST »
0
Vero. Il toast li crasha. Puoi comporre una lista se vuoi o una stringa e poi fai return tuo oggetto. Sarà il metodo onPostExecute che implementerà il Toast