Home » Android » Android call onClick method without Clicking

Android call onClick method without Clicking

Posted by: admin June 15, 2020 Leave a comment

Questions:

I want to use existing onClick method to make my program simpler.
It consists of onClick method and other method:

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

void foo(){
  ....
  onClick(????);
}

Is there any way to make it do the same behaviour like when i click it on the phone?

How to&Answers:

you can use View.performClick()

reference

Answer:

performClick() will play a sound just like if the user clicked on that view, therefore in most cases it’s better to use callOnClick(), which will call the OnClickListener without playing any click sound. (Available since API level 15)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) myView.callOnClick(); //won't play sound
else myView.performClick(); //will play sound

Answer:

public class DemoActivity extends AppCompatActivity implements View.OnClickListener{         

Button mBtnAutomaticClick;
        protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_report_bug);
             mBtnAutomaticClick = findViewById(R.id.automatic_click_demo);
             mBtnAutomaticClick.setOnClickListener(this);
             mBtnAutomaticClick.performClick(); // for automatic click event
          }
      }

@Override
public void onClick(View v) {
     switch (v.getId()) {
        case R.id.automatic_click_demo:
           // your code
           break;
    }
}

When activity will call your code which you have written inside onClick will be called automatically.

Answer:

Handler handler = new Handler(  );
    handler.postDelayed( new Runnable() {
        @Override
        public void run() {
            // call the method below
        }
    },0 );