安卓:如何从片段中以编程方式点击活动堆栈中先前位于活动中的按钮



当我在片段B中时,如何模拟点击堆栈中活动中的按钮。

登录活动A=>碎片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

登录活动A:

@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和Fragment启动。我只想获得一个带有LoginActivity=>Fragment 的堆栈

有什么想法吗?

编辑:

我尝试了这个技巧,但没有成功:

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

我从出现错误的片段中启动了活动功能

"未找到可接受的模块。本地版本为0,远程版本为0.">

您可以使用一个带有onClick方法的接口,该方法由您的活动实现,然后在片段B中随时调用onClick,并将活动传递给它。

尽管我认为你所做的是错误的,你应该改变主意

这不是一个好的做法,但如果你愿意,你可以通过调用你的活动UI元素

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

永远记住,Android是一个很好的架构师平台,如果你想做一些困难的事情,也许你不应该做。重新思考你的设计模式。

最新更新