Android: Как программно нажать на кнопку, ранее находившуюся в активности в стеке действий, из фрагмента? - PullRequest
0 голосов
/ 06 марта 2020

Когда я нахожусь во фрагменте B, как имитировать нажатие на кнопку, расположенную в действии в стеке.

LoginActivityA => фрагментB.

Я хочу смоделировать что-то подобное :

LoginActivityA.btnClick () из фрагментаB

Я пытался использовать эти билеты безуспешно: Ticket1 , Ticket2 , Ticket3
Вот мой код:
Фрагмент B:

//BEGIN TEST
String message="hello ";
Intent intent = new Intent(getActivity(), LoginActivity.class);
intent.putExtra("MESSAGE",message);
getActivity().setResult(2,intent);
getActivity().startActivityForResult(intent,2);
getActivity().finish();//finishing activity
//END TEST

LoginActivityA:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        // check if the request code is same as what is passed  here it is 2
        if(requestCode==2)
        {
            //do the things u wanted
        }
    }  

Я точно не пытаюсь получить несколько LoginActivity и фрагмент запущен. Я хотел бы получить только один стек с LoginActivity => Fragment

Есть идеи?

РЕДАКТИРОВАТЬ:

Я пытался это из этот tichet безуспешно:

((LoginActivity)getActivity()).login();

Я запустил функцию активности из представленного фрагмента с ошибкой

"Приемлемый модуль не найден. Локальная версия - 0, а удаленная версия - 0."

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Это не очень хорошая практика, но если вы хотите, вы можете вызывать элементы пользовательского интерфейса вашей деятельности по номеру

((Button) getActivity().findViewById(R.id.button_id)).performClick();

Всегда помните, Android - это платформа для разработки скважин, если Вы пытаетесь сделать что-то сложное, вероятно, вам не следует этого делать. Подумайте о своих шаблонах дизайна.

0 голосов
/ 06 марта 2020

Вы можете использовать интерфейс с методом onClick, который реализуется вашей деятельностью, а затем во фрагменте B вызывать метод onClick всякий раз, когда вы хотите, и передавать ему действие.

Хотя я предполагаю, что вы делаете неправильно, и вы должны передумать.

...