如何在不显示按钮的情况下单击另一个按钮?

最后发布: 2019-06-28 21:57:22


问题

我想通过单击另一个按钮2发送按钮1的数据,这在android中是可能的,而没有向用户显示按钮1?

java android button
回答

您可以通过调用按钮的callOnClick方法以编程方式“单击”按钮。

请参阅作为参考。


回答

您可以使用View.performClick()View.callOnClick()来做到这一点。

但是您应该重新查看您的代码。 按钮内的代码是否可以重构为方法? 代码是否可以重用,可以在另一个按钮中调用?

您现在编写的代码可能是这样的:

public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);

    ...

    buttonA.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // do process when button A clicked.
        } 
    });

    buttonB.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // do process when button B clicked.
        } 
    });

    ...

}

您可以将每个按钮的内部重构为方法,如下所示:

public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);

    ...

    buttonA.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // do process when button A clicked.
            processButtonA();
        } 
    });

    buttonB.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // do process when button B clicked.
            processButtonB();
        } 
    });

    ...
}

private void processButtonA() {
  // something here.
}

private void processButtonB() {
  // something here.
}

然后,如果需要从按钮A调用与按钮B相关的过程,则可以执行以下操作:

buttonA.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        processButtonA();
        processButtonB();
    } 
});