Autor Tema: ActionBarActivity deprecated usar AppCompatActivity Botón +1 Android Studio  (Leído 11680 veces)

Estudiante29

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Hola a todos, espero poner esto en la sección adecuada.

Estoy programando en Android Studio y en un proyecto tengo dos botones uno incrementa y otro decrementa, y un TextView que empieza por 1 y tendría que aumentar o disminuir.

Lo raro es que me tacha ActionBarActivity diciendo "deprecated". Arriba de todo está import android.support.v7.app.ActionBarActivity;

Aquí adjunto parte del código:

Código: [Seleccionar]
public class IncrementActivity extends ActionBarActivity {

    private Button aumentar, disminuir;
    private TextView contadorTextView;

    private int contador = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_increment);

        contadorTextView = (TextView) findViewById(R.id.contadorTextView);

        aumentar = (Button) findViewById(R.id.aumentarButton);

        aumentar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                contador++;

            contadorTextView.setText("Contador: "+contador);
            }
        });

        disminuir = (Button) findViewById(R.id.disminuirButton);

        disminuir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                contador--;

                contadorTextView.setText("Contador: "+contador);
            }
        });
    }

Espero que alguien me pueda ayudar, muchas gracias por anticipado.
Saludos.
« Última modificación: 20 de Mayo 2015, 08:27 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Botón incrementa +1 Android Studio
« Respuesta #1 en: 20 de Mayo 2015, 08:26 »
Hola, lo que te indica el mensaje es que ActionBarActivity es una clase deprecated (obsoleta, de uso no recomendado, que se mantiene solo para dar soporte a apps antiguas pero que ya no se recomienda que se use).

En lugar de esta clase debes usar AppCompatActivity según indica la propia documentación de Android << This class is deprecated. Use AppCompatActivity instead. >>

Referencia: https://developer.android.com/reference/android/support/v7/app/ActionBarActivity.html

Salu2

Estudiante29

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Hola Ogramar, muchas gracias por tu respuesta. :) Ya todo está correcto y me funciona bien.
Salu2.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Hola, ¿puedes pegar cómo ha quedado el código? Así puede servir de ayuda para quien tenga un problema similar.

Salu2

Estudiante29

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Hola Ogramar, no he podido responder antes.
Le he añadido además de los botones Aumentar y Disminuir, otro que actúa de Reset, para que vuelva a 1 si el valor está muy alto, pero lo que en verdad quiero, es que añadiendo un número en un editText, se pueda multiplicar por el valor que aumento o disminuyo, pero sin tener que usar un botón que me de el resultado en un textView.
Tendría que ser algo automático, pero no consigo saber cómo y me gustaría saber que hay que poner. Además cuando le doy a run para que funcione, me da error y ni se muestra en pantalla.
Aquí voy a poner todo el código completo del IncrementActivity.java:
Código: [Seleccionar]
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;


public class IncrementActivity extends AppCompatActivity {

    EditText et1;
    TextView tv2, tvT;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_increment);

        et1 = (EditText) findViewById(R.id.editText1);
        tv2 = (TextView) findViewById(R.id.incrementTextView);
        tvT = (TextView) findViewById(R.id.textView_Resultado);

        int aux1 = Integer.valueOf(et1.getText().toString());
        int aux2 = Integer.valueOf(tv2.getText().toString());
        int resultado = aux1 * aux2;

        tvT.setText(""+resultado);


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_increment, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    public void buttonOnClick(View v) {

        TextView content = (TextView)this.findViewById(R.id.incrementTextView);
        int num = Integer.parseInt(content.getText().toString());
        switch(v.getId()) {
            case R.id.button:
                String result = String.valueOf(num + 1);
                content.setText(result);
                break;
            case R.id.button2:
                result = String.valueOf(num - 1);
                content.setText(result);
                break;
            case R.id.button3:
                result = String.valueOf(1);
                content.setText(result);
                break;
        }
    }


    }


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Hola si por automático te refieres a que escribas el número y automáticamente se produzca el cambio sin pulsar en ningún botón tendrías que hacerlo capturando eventos. Cada vez que escribes algo en un editText se produce el evento de "cambio en el edit text". Tendrías que capturar ese evento y añadir las instrucciones necesarias sobre el código que quieras ejecutar cuando se produce el evento.

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".