- Update UI Android
- //launcher class
- public class profesor extends Activity implements OnClickListener {
- static TableLayout alumnsTable;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- .
- .
- .
- Thread serverThread = new Thread(null, new TCPServer(), "BackgroundService");
- serverThread.start();
- .
- .
- .
- //information is added to the table
- alumnsTable = (TableLayout)findViewById(R.id.alumnsTable);
- List<Alumnos> listaAlumnos = Alumnos.ReadList();
- for(Alumnos al:listaAlumnos){
- alumnsTable.addView(filaAlumno(al));
- }
- }
- //Eliminates the above information and reloads the table with the new information
- public void actualiza(){
- alumnsTable.removeAllViews();
- setContentView(R.layout.main);
- alumnsTable = (TableLayout)findViewById(R.id.alumnsTable);
- List<Alumnos> listaAlumnos = Alumnos.ReadList();
- for(Alumnos al:listaAlumnos){
- alumnsTable.addView(filaAlumno(al));
- }
- }
- }
- //TCPServer class
- public class TCPServer implements Runnable {
- private static Handler handler = new Handler();
- public void run() {
- ServerSocket serverSocket;
- String file;
- int filesizeMb = 4;
- int filesize = filesizeMb * (1024 * 1024); // filesize temporary hardcoded
- int bytesRead;
- int current = 0;
- try {
- serverSocket = new ServerSocket(profesor.COMUNICATION_PORT);
- Log.d(profesor.LOG_TAG,"S: Servidor Iniciado.");
- while (true) {
- final Socket sock = serverSocket.accept();
- String ClientAddr=sock.getInetAddress().toString();
- ClientAddr = ClientAddr.substring(ClientAddr.indexOf('/') + 1, ClientAddr.length());
- final String contacto=DeviceList.getDeviceName(ClientAddr);
- Log.d(profesor.LOG_TAG,"S: Conectado con: " + ClientAddr);
- // Conection type
- DataInputStream dis = new DataInputStream(sock.getInputStream());
- final String connectionType =dis.readUTF();
- Log.d(profesor.LOG_TAG,"S: Tipo de Conexion " + connectionType);
- .
- .
- .
- .
- // RECEIVING CONTROL MESSAGE
- if (connectionType.contains("CONTROL")) {
- String ControlText =dis.readUTF();
- String[] Control = ControlText.split(":");
- Log.d(profesor.LOG_TAG,"S: Recibido nuevo progreso de prueba. IP: "+Alumnos.getIdAlumno(ClientAddr)+"->"+Integer.parseInt(Control[0])+" ->"+Integer.parseInt(Control[1]));
- Alumnos.setProgress(Alumnos.getIdAlumno(ClientAddr), Integer.parseInt(Control[0]), Integer.parseInt(Control[1]));
- /****************************************************/
- //Here is where I need to call the update method of the
- //class teacher to delete the old data and fill the table
- //again.
- /****************************************************/
- }
- dis.close();
- sock.close();
- }
- } catch (IOException e) {
- Log.d(profesor.LOG_TAG, "IOException"+e);
- e.printStackTrace();
- }
- }
- }
- refHandler.post(new Runnable(){
- public void run() {
- //Update
- }
- });
- refActivity.runOnUiThread(new Runnable() {
- public void run() {
- //Update
- }
- });
- // RECEIVING CONTROL MESSAGE
- if (connectionType.contains("CONTROL")) {
- String ControlText =dis.readUTF();
- String[] Control = ControlText.split(":");
- Log.d(profesor.LOG_TAG,"S: Recibido nuevo progreso de prueba. IP: "+Alumnos.getIdAlumno(ClientAddr)+"->"+Integer.parseInt(Control[0])+" ->"+Integer.parseInt(Control[1]));
- Alumnos.setProgress(Alumnos.getIdAlumno(ClientAddr), Integer.parseInt(Control[0]), Integer.parseInt(Control[1]));
- /****************************************************/
- //Here is where I need to call the update method of the
- //class teacher to delete the old data and fill the table
- //again.
- /****************************************************/
- profesor.this.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- // refresh ui here
- }
- });
- }