Calificar Aplicación en Android Nativo

Retomando el tutorial de Html5 en proyecto de Android vamos a prender a generar un botón para darle la opción a los usuarios que instalaron la aplicación para que la puedan calificar o dejarnos algún comentario en la Play Store, recuerda que esto nos ayuda mucho a impulsar nuestra aplicación, ademas que para el buscador empieza a tener relevancia.

Pare esta ocasión vamos a dejar el código necesario para trabajar directamente desde una clase principal o desde una clase extendida con Fragment.

Lo primero que vamos hacer es crear el botón para general la acción, recuerda que puedes utilizar un botón normal o uno con imagen.

Vamos a ir al archivo activity_main o al xml donde quieras colocar el botón para calificar y creamos el botón.


Una vez creado el botón para calificar vamos a ir a la clase MainActivity.java o a la clase que interpreta el xml donde se creo el botón para calificar.

En este archivo vamos hacer el llamado del botón con el id calificar y una vez definido le agregamos la función setOnClickListener que es la que nos reconoce el clic, dentro de esta función generamos el código necesario para crear un Alerta para mostrar el mensaje y determinar la acción hacia el usuario, una vez el usuario ejecute la acción sera dirigido a la página de la Play Store que colocamos, donde el usuario podrá calificar nuestra aplicación y dejarnos un comentario.

Código del botón

 Button calificar = (Button) findViewById(R.id.calificar);

        calificar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                // Setting Dialog Message
                alertDialog.setTitle("CALIFICAR");
                alertDialog.setMessage("Tu comentario es muy importante para nosotros, por favor VALORA " +
                        "o deja un comentario para poder mejorar esta aplicación " +
                        " Gracias por tu ayuda!");

                alertDialog.setCancelable(true);
                alertDialog.setPositiveButton("IR", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int which) {

                        //final String appPackageName =  getPackageName(); // getPackageName() from Context or Activity object
                        final String appPackageName =  "com.landoncity.landoncity"; // getPackageName() from Context or Activity object
                        try {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                        } catch (android.content.ActivityNotFoundException anfe) {}
                    }
                });
                alertDialog.show();

            }
        });

Código de toda la clase MainActivity.java


package android.ejemplo.com.htmlenandroid;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
    WebView myBrowser;
    Button btnSendMsg;

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


        Button calificar = (Button) findViewById(R.id.calificar);

        calificar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
                // Setting Dialog Message
                alertDialog.setTitle("CALIFICAR");
                alertDialog.setMessage("Tu comentario es muy importante para nosotros, por favor VALORA " +
                        "o deja un comentario para poder mejorar esta aplicación " +
                        " Gracias por tu ayuda!");

                alertDialog.setCancelable(true);
                alertDialog.setPositiveButton("IR", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int which) {

                        //final String appPackageName =  getPackageName(); // getPackageName() from Context or Activity object
                        final String appPackageName =  "com.landoncity.landoncity"; // getPackageName() from Context or Activity object
                        try {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                        } catch (android.content.ActivityNotFoundException anfe) {}
                    }
                });
                alertDialog.show();

            }
        });


    }


    public class MyJavaScriptInterface {
        Context mContext;

        MyJavaScriptInterface(Context c) {
            mContext = c;
        }

        public void showToast(String toast){
            Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
        }

        public void openAndroidDialog(){
            AlertDialog.Builder myDialog
                    = new AlertDialog.Builder(MainActivity.this);
            myDialog.setTitle("ALERTA!");
            myDialog.setMessage("mensaje alerta");
            myDialog.setPositiveButton("ON", null);
            myDialog.show();
        }


    }

    @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_main, 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);
    }
}



Para hacer esto mismo sobre una clase extendida con Fragment solo cambia el (.java) el resto es igual.


public class Contacto extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.contacto, container, false);

        final Button calificar = (Button) rootView.findViewById(R.id.calificar);

        calificar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
            // Setting Dialog Message
            alertDialog.setTitle("CALIFICAR");
            alertDialog.setMessage("Tu comentario es muy importante para nosotros, por favor VALORA " +
                    "o deja un comentario para poder mejorar esta aplicación " +
                    " Gracias por tu ayuda!");

            alertDialog.setCancelable(true);
            alertDialog.setPositiveButton("IR", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int which) {

                    final String appPackageName =  getActivity().getPackageName(); // getPackageName() from Context or Activity object
                    try {
                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                    } catch (android.content.ActivityNotFoundException anfe) {}
                }
            });
            alertDialog.show();

            }
        });



        return rootView;
    }
}

Recuerda que tu aplicación ya tiene que aparecer en la Play Store, en el ejemplo del vídeo realice una prueba con una aplicación existente en la Play Store.

Para pruebas puedes utilizar final String appPackageName = "com.landoncity.landoncity";

Cuando tengas publicada tu aplicación cámbialo por esto final String appPackageName = getPackageName();

Comentarios

  1. Impresionante, es justo lo que estaba necesitando, esto de programar en android me estaba complicando, pero ya estoy un poco mas familiarizada.

    ResponderEliminar

Publicar un comentario

Gracias por compartir tus comentarios con nosotros, si el comentario requiere de alguna respuesta por parte de nosotros, trataremos de responderte lo mas pronto posible.

Entradas populares de este blog

Como conectar MySQL con Android Nativo

Lista con imágenes Android nativo (ListView)

SUMAR RESTAR HORAS DÍAS EN ANDROID