Tengo problemas en la comprensión de este código. Tengo que findViewById obtendrá el botón de widget y, a continuación, va a lanzarlo. A continuación, se va a utilizar el botón para llamar a la setOnClickListener método. Sin embargo, no sé lo que es que el argumento que se pasa en la setOnClickListener y nunca he visto que el código como antes. ¿Cómo es que se crea un nuevo objeto, sino que es capaz de crear un método propio dentro de otro método es el argumento? Sería genial si alguien pudiera explicar eso. También, qué tipo de objeto es el setOnClickListener método de tomar?

btn = (Button)findViewById(R.id.firstButton);
btn.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        tv.setText(months[rand.nextInt(12)]);
        tv.setTextColor(Color.rgb(rand.nextInt(255)+1, rand.nextInt(255)+1, rand.nextInt(255)+1));
    }
});
poner dentro de la toat y verificación
Es proporcionar una instancia de una clase anónima que se ajusta a la Vista de interfaz.OnClickListener.
Espero que esta lección le ayudará a youtube.com/…

OriginalEl autor rayleigh | 2014-09-12

3 Comentarios

  1. 14

    Funciona así. Vista.OnClickListenere se define –

    public interface OnClickListener {
        void onClick(View v);
    }

    Tan lejos como sabemos que no se pueden crear instancias de un objeto OnClickListener, ya que no tiene un método implementado. Así que hay dos maneras que usted puede ir por el – se puede implementar esta interfaz que anulará onClick método como este:

    public class MyListener implements View.OnClickListener {
        @Override
        public void onClick (View v) {
             //your code here;
        }
    }

    Pero es tedioso hacerlo cada vez que desee establecer un clic en el oyente. Así que para evitar esto se puede proporcionar la aplicación del método en la mancha, como en el ejemplo que usted dio.

    setOnClickListener toma View.OnClickListener como parámetro.

    Impresionante explicación!! Tiene perfecto sentido y aprendido algo nuevo!! Nunca supe que usted puede crear instancias de un objeto de una interfaz mediante la aplicación de su método en el lugar. Muy fresco.
    ¿Cuál es el argumento de la «método setOnClickListener»?
    Si quieres saber más leer acerca de Observador Patrón de Diseño 🙂
    para una sola vista (por ejemplo, botón) ¿tiene sentido utilizar SetOnClickListener?
    el método setOnClickListener toma el argumento de tipo OnClickListener la definición de los respectivos método se parece a esto setOnClickListener(OnClickListener mListener)

    OriginalEl autor cliffroot

  2. 5

    Esta es la mejor manera de implementar Onclicklistener para muchos botones en una fila
    implementar la Vista.onclicklistener.

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Este es un botón en el MainActivity

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        bt_submit = (Button) findViewById(R.id.submit);
    
        bt_submit.setOnClickListener(this);
    }

    Este es un método de reemplazo de

        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.submit:
                    //action
    
                    break;
    
                case R.id.secondbutton:
                    //action
                    break;
            }
        }

    OriginalEl autor nafees ahmed

  3. 0

    Que lo manual dice sobre setOnClickListener método es el siguiente:

    public void setOnClickListener (View.OnClickListener l)

    Añadido en la API de nivel 1 Registro de una devolución de llamada que se invoca cuando este punto de vista
    se hace clic. Si este punto de vista no se puede hacer clic, se hace clic en ella.

    Parámetros

    l Ver.OnClickListener: La devolución de llamada que se ejecuta

    Y, normalmente, usted tiene que utilizar esta

    public class ExampleActivity extends Activity implements OnClickListener {
        protected void onCreate(Bundle savedValues) {
            ...
            Button button = (Button)findViewById(R.id.corky);
            button.setOnClickListener(this);
        }
    
        //Implement the OnClickListener callback
        public void onClick(View v) {
          //do something when the button is clicked
        }
        ...
    }

    Echa un vistazo a esta lección La construcción de una Calculadora Simple de usar Android Studio.

    OriginalEl autor Academy of Programmer

Dejar respuesta

Please enter your comment!
Please enter your name here