Android - public static final

 
Vista:
sin imagen de perfil

public static final

Publicado por Javitopo (2 intervenciones) el 23/11/2014 09:34:12
Estoy pegándome con un código, mis conocimientos son muy bajos y tengo un problema que no sé resolver.

El código tiene unas rutas, yo quiero que estas rutas sean variables, para poner una diferente por cada idioma.

He intentado ponerle un string de la carpeta Values pero no me funciona, creo que por ser public static final

¿Cómo lo podría hacer?

Muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.util;
 
import java.io.Serializable;
 
public class Constant implements Serializable{
 
	 private static final long serialVersionUID = 1L;
 
	//this is the path of uploaded image of server where image store
		 public static final String SERVER_IMAGE_UPFOLDER="http://viaviweb.in/envato/image_quiz/images/";
 
 	 //this url gives list of author 
	 public static final String ADD_LEVEL = "http://viaviweb.in/envato/image_quiz/api.php";
 
	 public static final String LEVELWISE_QUESTION = "http://viaviweb.in/envato/image_quiz/api.php?level_id=";
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 444
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

public static final

Publicado por juanki (253 intervenciones) el 23/11/2014 10:35:21
Hola

Quítale el final, si declaras una variable como final no podrás cambiar su valor. Es constante.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

public static final

Publicado por ManoloMeis (1 intervención) el 23/11/2014 10:55:04
Yo tampoco soy un experto en java, pero bueno, vas por la buena dirección:

el modificador static lo que hace es que la variable sea compartida por todas las instancias de esa clase (en cristiano, si modificas el valor en un objeto de esa clase, pues en los demás objetos de esa clase el valor pasa a ser ese que tu has cambiado)

el modificador final lo que hace, es que una vez establecido el valor de la variable, este no puede modificarse (básicamente se convierte en una constante)... con lo que si intentas cambiar el valor, pues se saltará un error

Resumiendo: si quitas el modificador de final, pues ya podrás variar el valor de la variable sin problemas... pero si vas a crear varios objetos de esa clase y quieres que cada uno tenga un valor, pues también tendrás que quitar el modificador static...

espero haberte servido de ayuda, hasta luego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

public static final

Publicado por Javitopo (2 intervenciones) el 23/11/2014 12:47:01
Gracias a los 2 por vuestra ayuda.

He probado quitar lo de "final", eclipse no me da ningún error, pero la App no puede conectar a esos enlaces, asi que no funciona la APP.

Lo que voy a decir quizás es una burrada, pero ¿Podría duplicar el código de la clase y poner un condicional o algo así que dependiendo del idioma coja u otra?

Por ejemplo en values generar un string inglés=1 español=2

Y poner algo así (Esta parte no sé hacerla)

Si x=1

1
2
3
4
5
6
7
8
9
10
11
public class Constant implements Serializable{
 
	 private static final long serialVersionUID = 1L;
 
	//this is the path of uploaded image of server where image store
		 public static final String SERVER_IMAGE_UPFOLDER="http://viaviweb.in/envato/XXXX/images/";
 
 	 //this url gives list of author 
	 public static final String ADD_LEVEL = "http://viaviweb.in/envato/XXXX/api.php";
 
	 public static final String LEVELWISE_QUESTION = "http://viaviweb.in/envato/XXXX/api.php?level


Si x=2

1
2
3
4
5
6
7
8
9
10
11
public class Constant implements Serializable{
 
	 private static final long serialVersionUID = 1L;
 
	//this is the path of uploaded image of server where image store
		 public static final String SERVER_IMAGE_UPFOLDER="http://viaviweb.in/envato/YYYY/images/";
 
 	 //this url gives list of author 
	 public static final String ADD_LEVEL = "http://viaviweb.in/envato/YYYY/api.php";
 
	 public static final String LEVELWISE_QUESTION = "http://viaviweb.in/envato/YYYY/api.php?level
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar