Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    158

    [Java][Android] Listview Custom Adapter risorsa esterna

    Buona sera, come da titolo sto tentando di riempire una listView con un custom adapter da un Oggetto ArrayList Ricevuto da un socket server scritto in Java ma il Client Android Non trova la classe inviata dal Socket :

    Server:

    codice:
    public class Server {
    
        static ArrayList<Busta> prova;
        
    
    
        public static void main(String srgs[]) {
    
    
            int count = 0;
            
            initList();
    
    
            //hard code to use port 8080
            try (ServerSocket serverSocket = new ServerSocket(6789)) {
                
                System.out.println("I'm waiting here: " + serverSocket.getLocalPort());
                
                while (true) {
                    
                    try {
                        Socket socket = serverSocket.accept();
                                
                        count++;
                        System.out.println("#" + count + " from "
                                + socket.getInetAddress() + ":" 
                                + socket.getPort());
                        
                        HostThread myHostThread = new HostThread(socket, count);
                        myHostThread.start();
                        
                    } catch (IOException ex) {
                        System.out.println(ex.toString());
                    }
                }
            } catch (IOException ex) {
                System.out.println(ex.toString());
            }
        }
        
        private static class HostThread extends Thread{
            
            private Socket hostThreadSocket;
            int cnt;
            
            HostThread(Socket socket, int c){
                hostThreadSocket = socket;
                cnt = c;
            }
    
    
            @Override
            public void run() {
                
                OutputStream outputStream;
                try {
                    outputStream = hostThreadSocket.getOutputStream();
                    try (ObjectOutputStream objectOutputStream = 
                        new ObjectOutputStream(outputStream)) {
                            objectOutputStream.writeObject(prova);
                    }
                } catch (IOException ex) {
                    System.out.println(ex.toString());
                }finally{
                    try {
                        hostThreadSocket.close();
                    } catch (IOException ex) {
                        System.out.println(ex.toString());
                    }
                }
    
    
            }
        }
        
        private static void initList(){
            
           
          
             
            try
            {
                prova = new ArrayList<Busta>();
                String DATABASE_URL = "jdbc:ucanaccess:///OneDrive//Programmazione//Android//dati.mdb;password=gmpa;memory=false";
                
                Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
                Connection conn = DriverManager.getConnection(DATABASE_URL);
                System.out.println(conn);
                Statement s = conn.createStatement();
               
                ResultSet rs = s.executeQuery("SELECT * FROM [tabripa]");
                while (rs.next()) {
                    
                    
                     //prova.add(rs.getString("Nbusta"));
                     prova.add(new Busta(rs.getString("Nbusta"),rs.getNString("Nome")));
                 
                    
           
                }
                
               
    
    
                s.close();
                conn.close();
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
            
            
        }
       
    }
    Il metodo del client che riceve i dati dell'ArrayList:

    codice:
    class ClientThread extends AsyncTask{
    
    
        //ArrayAdapter<String> arrayAdapter;
    AdaperRisultato arrayAdapter = null;
    
        @Override
    protected Object doInBackground(Object[] objects) {
    
    
            try {
                Socket socket = new Socket("192.168.3.199",porta);
    
                try {
                    ObjectOutputStream objectOutput = new ObjectOutputStream(socket.getOutputStream());
                    ObjectInputStream objectInput = new ObjectInputStream(socket.getInputStream()); //Error Line!
    try {
                        Object object = objectInput.readObject();
    
                        arrayBusta = (ArrayList<Busta>) object;
    
                        for (int i = 0; i < arrayBusta.size(); i++) {
                            // String get = arrayBusta.get(i);
    System.out.println(arrayBusta.get(i));
    
                            //List list = new LinkedList();
                            //list.add(new Busta(arrayBusta));
    }
    
    
    
                    } catch (ClassNotFoundException e) {
                        System.out.println("Classe Non esistente");
                        e.printStackTrace();
                    }
                } catch (IOException e) {
                    System.out.println("Lettura Socket Con Problemi");
                    e.printStackTrace();
                }
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return arrayBusta;
        }
    
        @Override
    protected void onPostExecute(Object o) {
            ArrayList<Busta> listaAdaptor = Busta.fromJson(arrayBusta);
            arrayAdapter = new AdaperRisultato(MainActivity.this,R.layout.adapter_row, listaAdaptor);
            lista.setAdapter(arrayAdapter);
    
        }
    
    }
    
    
    }
    :


    Bisognerebbe che vi mandassi sia il Server e il Client per capire bene perchè ci mancano i modelli.


    Errore:

    codice:
    /System.err: java.lang.ClassNotFoundException: provaserverclient3.BustaW/System.err:     at java.lang.Class.classForName(Native Method)
    W/System.err:     at java.lang.Class.forName(Class.java:400)
    W/System.err:     at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626)
    W/System.err:     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
    W/System.err:     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
    W/System.err:     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1772)
    W/System.err:     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
    W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
    W/System.err:     at java.util.ArrayList.readObject(ArrayList.java:763)
    W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
    W/System.err:     at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1006)
    W/System.err:     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1894)
    W/System.err:     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1799)
    W/System.err:     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
    W/System.err:     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
    W/System.err:     at com.example.nio74.client.MainActivity$ClientThread.doInBackground(MainActivity.java:92)
    W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:304)
    W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
    W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    W/System.err:     at java.lang.Thread.run(Thread.java:761)
    W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "provaserverclient3.Busta" on path: DexPathList[[dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-support-annotations-25.1.0_18468df7b6490749d338021d6a3bd505913b26ce-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-vector-drawable-25.1.0_61c5c034009fb96d470a84e27ffe016f04cdc494-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-v4-25.1.0_a683b53f0f348e2797ad85f4fa61d2d3902b1eeb-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-media-compat-25.1.0_c8ae95ba217fcf1c9ab7ad7524b62216ac9045e8-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-fragment-25.1.0_4a4787580f755f8e0128468ecd8cb3b0bf94a90b-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-core-utils-25.1.0_570094e70a8f013e44b6d3a6698ed4d5b7b8defe-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-core-ui-25.1.0_cd0bb001a93f1e24a1feac8c98b90329db02bcf4-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-support-compat-25.1.0_6e16847b37fb1ae872982c138fa06dd1e2289d50-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-appcompat-v7-25.1.0_e270828f2f74a9e6555959501d393eb5ff2812b2-classes.dex", dex file "/data/data/com.example.nio74.client/files/instant-run/dex/slice-com.android.support-animated-vector-drawable-25.1.0_20db7c43375e6d633a8498022b07bfb62cfb3a13-classes.dex"],nativeLibraryDirectories=[/data/app/com.example.nio74.client-2/lib/x86, /system/lib, /vendor/lib]]
    W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    W/System.err:     at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90)
    W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
    W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    W/System.err: 	... 22 more
    Ultima modifica di Nio74; 07-01-2017 a 20:32

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.