Foros del Web » Programación para mayores de 30 ;) » Java »

¿Porque no cambia el contenido de la variable?

Estas en el tema de ¿Porque no cambia el contenido de la variable? en el foro de Java en Foros del Web. Buenas, no consigo comprender porque tras ejecutarse el método onCheckedChanged() no me cambia el valor de la variable... Gracias un saludo. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: ...
  #1 (permalink)  
Antiguo 13/11/2011, 06:47
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años
Puntos: 8
¿Porque no cambia el contenido de la variable?

Buenas, no consigo comprender porque tras ejecutarse el método onCheckedChanged() no me cambia el valor de la variable... Gracias un saludo.

Código Java:
Ver original
  1. package juan.pruebas.smssender;
  2.  
  3. import android.app.Activity;
  4. import android.app.PendingIntent;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.telephony.SmsManager;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.CheckBox;
  11. import android.widget.CompoundButton;
  12. import android.widget.EditText;
  13. import android.widget.Toast;
  14.  
  15. public class GNOCAccesSmsSenderActivity extends Activity {
  16.     /** Called when the activity is first created. */
  17.    
  18.     String telefonoGnoc ="605097654";
  19.     public String entradaSalida = "";
  20.    
  21.     @Override
  22.     public void onCreate(Bundle savedInstanceState) {
  23.         super.onCreate(savedInstanceState);
  24.         setContentView(R.layout.main);
  25.        
  26.         final CheckBox checkBox = (CheckBox)findViewById(R.id.checkBoxEntradaSalida);
  27.        
  28.         EditText numCaso = (EditText)findViewById(R.id.numCaso);
  29.         EditText emplazamiento = (EditText)findViewById(R.id.emplazamiento);
  30.         EditText nomTec = (EditText)findViewById(R.id.nomTec);
  31.         EditText empresa = (EditText)findViewById(R.id.empresa);
  32.         EditText trabRealizar = (EditText)findViewById(R.id.trabRealizar);
  33.        
  34.         String var_numCaso = numCaso.getText().toString();
  35.         String var_emplazamiento = emplazamiento.getText().toString();
  36.         String var_nomTec = nomTec.getText().toString();
  37.         String var_empresa = empresa.getText().toString();
  38.         String var_trabRealizar = trabRealizar.getText().toString();
  39.                
  40.         Button botonEnvioSms = (Button)findViewById(R.id.botonEnvioSms);
  41.        
  42.         if (checkBox.isChecked()){
  43.             checkBox.setChecked(false);
  44.         }
  45.        
  46.         checkBox.setOnCheckedChangeListener(new android.widget.CompoundButton.OnCheckedChangeListener() {
  47.            
  48.             public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  49.                 // TODO Auto-generated method stub
  50.                 if (checkBox.isChecked()){
  51.                     checkBox.setText("Entrada");
  52.                     entradaSalida = "INI.";
  53.                 } else {
  54.                     checkBox.setText("Salida");
  55.                     entradaSalida = "FIN.";
  56.                 }
  57.             }
  58.         });
  59.        
  60.  
  61.         final String sms = entradaSalida + "." + var_numCaso + "." + var_emplazamiento
  62.                 + "." + var_nomTec + "." + var_empresa + ".LOC:IN-" + var_trabRealizar;
  63.        
  64.         final SmsManager enviarSms = SmsManager.getDefault();
  65.         String SENT = "SMS_SENT";
  66.         String DELIVERED = "SMS_DELIVERED";
  67.         final PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
  68.         final PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
  69.        
  70.         botonEnvioSms.setOnClickListener(new View.OnClickListener() {
  71.            
  72.             public void onClick(View v) {
  73.                 // TODO Auto-generated method stub
  74.                
  75.                
  76.                 //enviarSms.sendTextMessage(telefonoGnoc, null, sms, sentPI, deliveredPI);
  77.                
  78.                 Toast.makeText(getApplicationContext(), sms, Toast.LENGTH_LONG).show();
  79.             }
  80.         });
  81.     }
  82. }
  #2 (permalink)  
Antiguo 13/11/2011, 17:48
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ¿Porque no cambia el contenido de la variable?

Te refieres a la variable entradaSalida o a la variable sms?

Si es la variable sms, primero que nada es final y aparte de todo siempre asignas el valor que trae por defecto. Deberia de reconstruirse la cadena al presionar el boton o lo que sea.
  #3 (permalink)  
Antiguo 14/11/2011, 03:11
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años
Puntos: 8
Respuesta: ¿Porque no cambia el contenido de la variable?

Gracias por responder, sabía que iban por ahí los tiros, al introducir la construcción de la cadena dentro del botón si me funciona, pero me obliga a reconstruir toda la aplicación y a meterle todos los elementos gráficos en los botones...

Tendré que replantearlo de nuevo.

Un saludo.
  #4 (permalink)  
Antiguo 14/11/2011, 03:24
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años
Puntos: 8
Respuesta: ¿Porque no cambia el contenido de la variable?

Ok, ya está el código listo.

Gracias, un saludo!!

Código Java:
Ver original
  1. package juan.pruebas.accesognoc;
  2.  
  3. import android.app.Activity;
  4. import android.app.PendingIntent;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.telephony.SmsManager;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.Toast;
  12.  
  13. public class AccesoGnocActivity extends Activity {
  14.     /** Called when the activity is first created. */
  15.    
  16.     final String telefonoGnoc ="605097654";
  17.    
  18.     EditText txnumCaso, txemplazamiento, txnomTec, txempresa, txtrabRealizar;
  19.     String var_numCaso, var_emplazamiento, var_nomTec, var_empresa,
  20.         var_trabRealizar, entradaSalida, SENT, DELIVERED;
  21.     String sms = "";
  22.     SmsManager enviarSms;
  23.     PendingIntent sentPI;
  24.     PendingIntent deliveredPI;
  25.     Button botonEntrada, botonSalida;
  26.        
  27.     @Override
  28.     public void onCreate(Bundle savedInstanceState) {
  29.         super.onCreate(savedInstanceState);
  30.         setContentView(R.layout.main);
  31.        
  32.         txnumCaso = (EditText)findViewById(R.id.numCaso);
  33.         txemplazamiento = (EditText)findViewById(R.id.emplazamiento);
  34.         txnomTec = (EditText)findViewById(R.id.nomTec);
  35.         txempresa = (EditText)findViewById(R.id.empresa);
  36.         txtrabRealizar = (EditText)findViewById(R.id.trabRealizar);
  37.                        
  38.         botonEntrada = (Button)findViewById(R.id.botonEntrada);
  39.         botonSalida = (Button)findViewById(R.id.botonSalida);
  40.                
  41.         enviarSms = SmsManager.getDefault();
  42.         SENT = "SMS_SENT";
  43.         DELIVERED = "SMS_DELIVERED";
  44.         sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
  45.         deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
  46.        
  47.         botonEntrada.setOnClickListener(new View.OnClickListener() {
  48.            
  49.             public void onClick(View v) {
  50.                 // TODO Auto-generated method stub
  51.  
  52.                 var_numCaso = txnumCaso.getText().toString();
  53.                 var_emplazamiento = txemplazamiento.getText().toString();
  54.                 var_nomTec = txnomTec.getText().toString();
  55.                 var_empresa = txempresa.getText().toString();
  56.                 var_trabRealizar = txtrabRealizar.getText().toString();
  57.                
  58.                 entradaSalida = "INI.";
  59.                
  60.                 sms = entradaSalida + "." + var_numCaso + "." + var_emplazamiento
  61.                         + "." + var_nomTec + "." + var_empresa + ".LOC:IN-" + var_trabRealizar;
  62.                
  63.                 //enviarSms.sendTextMessage(telefonoGnoc, null, sms, sentPI, deliveredPI);
  64.                
  65.                 Toast.makeText(getApplicationContext(), sms, Toast.LENGTH_LONG).show();
  66.             }
  67.         });
  68.        
  69.         botonSalida.setOnClickListener(new View.OnClickListener() {
  70.            
  71.             public void onClick(View v) {
  72.                 // TODO Auto-generated method stub
  73.  
  74.                 var_numCaso = txnumCaso.getText().toString();
  75.                 var_emplazamiento = txemplazamiento.getText().toString();
  76.                 var_nomTec = txnomTec.getText().toString();
  77.                 var_empresa = txempresa.getText().toString();
  78.                 var_trabRealizar = txtrabRealizar.getText().toString();
  79.                
  80.                 entradaSalida = "FIN.";
  81.                
  82.                 sms = entradaSalida + "." + var_numCaso + "." + var_emplazamiento
  83.                         + "." + var_nomTec + "." + var_empresa + ".LOC:IN-" + var_trabRealizar + ".";
  84.                
  85.                 //enviarSms.sendTextMessage(telefonoGnoc, null, sms, sentPI, deliveredPI);
  86.                
  87.                 Toast.makeText(getApplicationContext(), sms, Toast.LENGTH_LONG).show();
  88.             }
  89.         });
  90.     }
  91. }

Supongo que debe haber alguna forma de no tener que duplicar el código en cada botón, pero para empezar está bien :)

Última edición por redtitle; 14/11/2011 a las 04:19

Etiquetas: contenido, string, cambios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.