Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 14/12/15, 02:13:59
Array

[xs_avatar]
cyberjos cyberjos no está en línea
Usuario poco activo
 
Fecha de registro: dic 2015
Mensajes: 2
Modelo de smartphone: Huawei Y550
Tu operador: Movistar
Como instanciar clases en android??

Hola amigos quiero preguntarles como se hace para instanciar clases en android ya que lo hago como lo aria en php o en la misma Java pero no me funciona, he leído acerca del tema pero aun no me queda muy claro que digamos.

Estoy haciendo una app de practica en donde tengo dos clases: una llamada Principal y otra clase que se llama Mensajes, la idea es que yo en Mensajes coloco todos los mensajes que podría emitir la app y luego donde yo los necesito pues lo que hago es instanciarlos.

Les dejo el código para que lo puedan apreciar y por favor me puedan decir como se puede hacer eso en android. Gracias..

CLASE PRINCIPAL

package com.example.jangarita.justjava;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import java.text.NumberFormat;
import java.util.Locale;

public class Principal extends ActionBarActivity {

int cantidadCafe = 1;

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);

}


/**Este metodo incrementa el numero de tazas de cafe a comprar

public void incrementaTaza(View v) {

cantidadCafe = cantidadCafe + 1;
verTaza(cantidadCafe);
}

/**Este metodo decrementa el numero de tazas de cafe a comprar

public void decrementarTaza(View v) {
cantidadCafe = cantidadCafe - 1;
verTaza(cantidadCafe);

}

/**Este metodo muestra el total de tazas de cafe que se van a comprar

private void verTaza(int numero){
TextView cantidadTextView = (TextView) findViewById(R.id.cantidad_text_view);
if (numero >= 1) {
cantidadTextView.setText("" + numero);
}
else
if(numero < 1){
Mensajes men=new Mensajes();
men.cantidadPedir();
cantidadCafe=1;
}


}

/**Este metodo muestra el total a pagar en moneda local por las tazas de cafe

private void displayPrecio(int number) {
TextView precioTextView = (TextView) findViewById(R.id.precio_text_view);
precioTextView.setText("" + number);
}

/**Este metodo muestra el total a pagar por la compra

public void submitOrder(View view) {
displayPrecio(cantidadCafe * 5);

}
}

CLASE MENSAJES

package com.example.jangarita.justjava;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Toast;

/**
* Created by Jose on 13/12/2015.
*
public class Mensajes extends Activity {

public void cantidadPedir(){
Toast mensaje= Toast.makeText(getApplicationContext(),"No puedes pedir menos de 1 taza",Toast.LENGTH_LONG);
mensaje.show();

}
}
Responder Con Cita


  #2  
Viejo 14/12/15, 02:23:20
Array

[xs_avatar]
Nonamed Nonamed no está en línea
Colaborador/a
· Votos compra/venta: (4)
 
Fecha de registro: feb 2011
Localización: Madrid
Mensajes: 175,525

@cyberjos:,

Movemos a la sección de desarrollo para Android.
__________________
Nonamed
Moderación y soporte a usuarios
Responder Con Cita
  #3  
Viejo 14/12/15, 09:42:32
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Realmente a tu código lo único que le veo es que Mensajes no necesita heredar de Activity.

Te está dando fallo porque Mensajes no tiene Context al no haber sido lanzada su Activity y por tanto getApplicationContext() da excepción.

Al constructor de Mensajes pásale el getApplicationContext de Principal (que será el mismo para todas las Activities), quita que Mensajes hereda de Activity, y solucionado.
Responder Con Cita
  #4  
Viejo 14/12/15, 13:33:40
Array

[xs_avatar]
cyberjos cyberjos no está en línea
Usuario poco activo
 
Fecha de registro: dic 2015
Mensajes: 2
Modelo de smartphone: Huawei Y550
Tu operador: Movistar
Hola KriogeN

Hola muchas gracias por responder...pudieras por favor darme un ejemplo de lo qie dices?? Es que yo quite que mensaje heredara de Activity pero me dice que no reconece el objeto Toast, entonces no le hallo la salida.
Responder Con Cita
  #5  
Viejo 14/12/15, 13:57:53
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Te dirá que no reconoce el getApplicationContext(), el Toast no forma parte de Activity.

Lo que digo es que Mensajes no herede nada (que realmente significa que herede de Object)

Luego añadir el siguiente constructor:

public Mensajes(Context context) {
this.context = context;
}

Obviamente necesitas una variable global:

Context context;

Y luego tendrías el método cantidadPedir así:

public void cantidadPedir(){
Toast mensaje= Toast.makeText(context,"No puedes pedir menos de 1 taza",Toast.LENGTH_LONG);
mensaje.show();
}

Finalmente cuando construyes Mensajes desde Principal sería:

Mensajes men=new Mensajes(getApplicationContext());

Si Mensajes simplemente va a ser para mostrar mensajes realmente no necesitas mantener el objeto para futuros usos, y podría ser estático:

Mensajes.cantidadPedir(getApplicationContext());

Y el método sería:

public static void cantidadPedir(Context context){
Toast mensaje= Toast.makeText(context,"No puedes pedir menos de 1 taza",Toast.LENGTH_LONG);
mensaje.show();
}
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 12:24:17 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /