我想使用现有的 onClick 方法使我的程序更简单。它由 onClick 方法和其他方法组成:
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
....
break;
}
}
void foo(){
....
onClick(????);
}
有没有办法让它像我在手机上点击它时那样做同样的行为?
您可以使用View.performClick()
performClick()
将播放声音,就像用户单击该视图一样,因此在大多数情况下最好使用callOnClick()
,它将调用OnClickListener
而不播放任何单击声音。(自 API 级别 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
Handler handler = new Handler( );
handler.postDelayed( new Runnable() {
@Override
public void run() {
// call the method below
}
},0 );
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;
}
}
当活动将调用您在 onClick 中编写的代码时,将自动调用。