Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android onClick method

I have two onclick method in android project

    clr=(Button)findViewById(R.id.Button01);
    clr.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            tv1.setText("CLR");

            et1.setText("");
            refrigerant = "";
            pres = "";
            temperature = "";

            superheat_oda = 0;
            sub_cool = 0;
}
    });

And i have onther onClick method in which i have to call that method directly

    prs=(Button)findViewById(R.id.Button02);
    prs.setOnClickListener(new OnClickListener() {


                     -----      I have to call that method---

                                                 }
    });

Is there Any Solution for this?

like image 407
bindal Avatar asked Sep 17 '10 08:09

bindal


People also ask

How can use onClick method in Android?

When the user clicks a button, the Button object receives an on-click event. To define the click event handler for a button, add the android:onClick attribute to the <Button> element in your XML layout. The value for this attribute must be the name of the method you want to call in response to a click event.

Which class contains onClick method in Android?

To answer your question directly, the onClickListere is an anonymous class that defines the onClick method, which will handle button events.

Is onClick deprecated in Android?

onClick is prompted deprecated.

How do I use OnClickListener?

If you have more than one button click event, you can use switch case to identify which button is clicked. Link the button from the XML by calling findViewById() method and set the onClick listener by using setOnClickListener() method. setOnClickListener takes an OnClickListener object as the parameter.


2 Answers

you can do something like this in the XML file

<Button
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:onClick="some_function" />

and put this function in the Java file

public void some_function(View view) {
 // stuff...
}

and put the some_function in both "onClick"s

like image 90
Ibraheem Saoud Avatar answered Oct 20 '22 13:10

Ibraheem Saoud


You should turn to use the simplest way that I always do as below:

@Override
public void onCreate(Bundle savedInstanceState) {
        button1.setOnClickListener(onClickListener);
        button2.setOnClickListener(onClickListener);

}

private OnClickListener onClickListener = new OnClickListener() {

    @Override
    public void onClick(final View v) {
             switch(v.getId()){
                 case R.id.button1:
                      //DO something
                 break;
                 case R.id.button2:
                      //DO something
                 break;
              }

    }
};
like image 24
Nguyen Minh Binh Avatar answered Oct 20 '22 13:10

Nguyen Minh Binh