как я могу нажать кнопку другой кнопкой, не отображая ее? - PullRequest
0 голосов
/ 29 июня 2019

Я хочу отправить данные кнопки1, нажав другую кнопку2, возможно ли это в Android, не показывая button1 пользователю?

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Вы можете сделать это, используя 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.
}

затем, если вам нужно вызвать процесс, связанный с кнопкой B, с кнопки A, вы можете сделать следующее:

buttonA.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        processButtonA();
        processButtonB();
    } 
});
0 голосов
/ 29 июня 2019

Вы можете программно «нажать» кнопку, вызвав метод callOnClick.

См. это для справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...