Android - obtener parte de textview

 
Vista:
Imágen de perfil de Charly
Val: 123
Bronce
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Charly (69 intervenciones) el 07/04/2017 15:55:06
Hola, tengo una aplicacion en la que se muestran los atributos de un objeto en un textview.
Para hacer unas operaciones más tarde, necesito obtener un trozo del string que obtengo del textview.
No puedo hacer el charSequence porque no se las posiciones de inicio y fin, ya que cada objeto tiene una longitud diferente.
A continuación pongo un ejemplo:
1
2
3
4
5
6
new Product(
                    "Jamón entero curado",
                    "10-12 Kg, 1 año curación, Origen España",
                    "6 €/Kg",
                    4.5f,
                    R.drawable.jamon),
Pues bien, quisiera obtener el precio del producto, pero sabiendo que no siempre es la misma longitud.
Había pensado en buscar el símbolo del euro y obtener algunos caracteres anteriores, pero no se cómo hacerlo, además de que no me serviría.
Muchas gracias de antemano.
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
Imágen de perfil de Francisco
Val: 386
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Francisco (347 intervenciones) el 07/04/2017 21:34:59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
String cadena="64440 €/Kg";
char si = 0;
String resultadoString="";
boolean nCompletado=false;
 
String cadena_string="";
 
int numerofinal=0;
 
// Recorres cada letra o simbolo de la caddena
// y haces una conmparacion
 
for (int i=0;i< cadena.length();i++){
  si=cadena.charAt(i)  ;
 
 
  cadena_string=""+si;
 
 
 if (cadena_string.equals("€")){
        nCompletado=true;
 
      }
 
 
 // Si en la cadena encuentra el simbolo $ en resultadostring quedara completado
 
 if (nCompletado==false){
	resultadoString=resultadoString +cadena_string;
 }
 
}
 
// Luego conviertes el strring en integer eliminado espacios que pudiera contener
 
numerofinal=Integer.parseInt(""+resultadoString.replace(" ",""));
 
Toast.makeText(getApplicationContext(), "Solucion "+ numerofinal, Toast.LENGTH_SHORT).show();

Espero haberte orientado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 9 puestos en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por juanki (251 intervenciones) el 08/04/2017 18:44:49
Hola

Si los datos en la cadena siempre están separados por comas puedes usar split para separarlos.

Si además el precio del producto siempre está en la misma posición, pues ya tienes el índice del array que corresponde al precio.

Si puede variar su posición, puedes hacer un bucle que recorra el array y buscar el item que contiene el símbolo del €.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Charly
Val: 123
Bronce
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Charly (69 intervenciones) el 09/04/2017 15:40:21
Muchas gracias a los dos.
He cogido ideas de los dos y me ha salido lo siguiente:
1
2
3
String[] Datos=datos.toString().split(",");
        String precio=Datos[2];
        int coste=Integer.parseInt(precio.substring(1,precio.length()-6));
Espero que me funcione.
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
Imágen de perfil de Charly
Val: 123
Bronce
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Charly (69 intervenciones) el 09/04/2017 17:17:33
Lo he probado después y no me funciona.
He probado con esto:
1
2
3
4
5
6
7
8
9
datos=(TextView)findViewById(R.id.datos);
        String[] Datos=new String[5];
        Datos=datos.toString().split(",");
        String nombre=Datos[0];
        String caract=Datos[1];
        String precio=Datos[2];
        String rating=Datos[3];
        String foto=Datos[4];
        int coste=Integer.parseInt(precio.substring(1,precio.length()-6));
Pero tampoco me va.
Me dice que hay un error NullPointerException en la línea: String caract=Datos[1];
He probado a comentar las líneas de los elementos del array que no quería y dejar solo la del precio, pero me sale el mismo error en esa línea.
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
Imágen de perfil de Francisco
Val: 386
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Francisco (347 intervenciones) el 09/04/2017 18:18:20
Que texto tienes en el textView ????

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Datos=datos.toString().split(","); // Tienes esta linea mal
 
 String[] Datos=new String[5];
        Datos=datos.getText().toString().split(",");
        String nombre=Datos[0];
        String caract=Datos[1];
        String precio=Datos[2];
        String rating=Datos[3];
        String foto=Datos[4];
 
 
 
 
 
 
 
String cadena=precio";
char si = 0;
String resultadoString="";
boolean nCompletado=false;
 
String cadena_string="";
 
int numerofinal=0;
 
// Recorres cada letra o simbolo de la caddena
// y haces una conmparacion
 
for (int i=0;i< cadena.length();i++){
  si=cadena.charAt(i)  ;
 
 
  cadena_string=""+si;
 
 
 if (cadena_string.equals("")){
        nCompletado=true;
 
      }
 
 
 // Si en la cadena encuentra el simbolo $ en resultadostring quedara completado
 
 if (nCompletado==false){
	resultadoString=resultadoString +cadena_string;
 }





}
 
// Luego conviertes el strring en integer eliminado espacios que pudiera contener
 
numerofinal=Integer.parseInt(""+resultadoString.replace(" ",""));
 
Toast.makeText(getApplicationContext(), "Solucion "+ numerofinal, Toast.LENGTH_SHORT).show();
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
Imágen de perfil de Charly
Val: 123
Bronce
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Charly (69 intervenciones) el 10/04/2017 11:24:14
He arreglado lo del getText y he quitado las comas que podrían generar problemas, pero me sale indice de array fuera de rango en la línea que pone:
1
String caract=Datos[1];
Y si lo comento, me aparece el error en la del precio:
1
String precio=Datos[2];
Los productos los creo así:
1
2
3
4
5
6
new Product(
                    "Jamón entero curado",
                    "10-12 Kg; 1 año curación; Origen España",
                    "6 €/Kg",
                    4.5f,
                    R.drawable.jamon),
Y se supone que eso mismo debería salir en el textview.
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
Val: 2
Ha disminuido su posición en 9 puestos en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por juanki (251 intervenciones) el 10/04/2017 12:41:23
Hola

Ahí estás creando un objeto de la clase "Product", pero nosotros no sabemos que es Product.

No sabemos qué texto contiene el TextView, si muestras por consola el texto del TextView ¿Que cadena muestra?

Como no des más información, no sabemos que estás haciendo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Charly
Val: 123
Bronce
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

obtener parte de textview

Publicado por Charly (69 intervenciones) el 10/04/2017 15:42:12
Haber si me aclaro, porque ya no sé si lo que hago a cada momento está bien.
Os paso adjunto el proyecto completo para que veais lo que tengo y lo que tiene que ocurrir.
Mi idea es que, desde la ventana principal, al darle al carrito de compras me aparezca la página en la que tengo los errores (BuyPage.java).
Además creo que tengo varios errores: además del textview, creo que el combobox o spinner no me lo muestra.
La lista de productos está en la clase Products, y la plantilla de los productos está en la clase Product.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar