9

我想使用现有的 onClick 方法使我的程序更简单。它由 onClick 方法和其他方法组成:

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

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

有没有办法让它像我在手机上点击它时那样做同样的行为?

4

4 回答 4

23

您可以使用View.performClick()

参考

于 2013-05-24T10:04:39.567 回答
1

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
于 2018-02-25T18:25:02.033 回答
0
Handler handler = new Handler(  );
    handler.postDelayed( new Runnable() {
        @Override
        public void run() {
            // call the method below
        }
    },0 );
于 2020-03-22T10:59:00.763 回答
-1
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 中编写的代码时,将自动调用。

于 2018-10-24T11:18:45.320 回答