简体   繁体   English

片段中来自Activity的调用方法

[英]Calling method from Activity in fragment

I have one Activity (1) that has two fragments. 我有一个活动(1),其中有两个片段。 This Activity extends to another one (2) with base methods that I commonly use in my application. 本活动使用我在应用程序中通常使用的基本方法扩展到另一(2)。 So I want to call a method from (2) after I click on one button that is located in one of the fragments from (1), what is the best way to do this? 因此,我想在单击(1)片段之一中的一个按钮后从(2)调用方法,什么是最好的方法?

I am trying to do it like this: 我正在尝试这样做:

login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(isValid()){
                    AndroidUtils.hideKeyboard(email, getActivity());
                    AuthenticationActivity.login(email.getText().toString(), password.getText().toString());
                }
            }
        });

But it says that a non-static method cannot be referenced from a static context. 但是它说不能从静态上下文中引用非静态方法。 So I tried to do this: 所以我尝试这样做:

login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(isValid()){
                    AndroidUtils.hideKeyboard(email, getActivity());
                    AuthenticationActivity instance = new AuthenticationActivity();
                    instance.login(email.getText().toString(), password.getText().toString());
                }
            }
        });

But it is not working. 但这是行不通的。

Try this one 试试这个

((AuthenticationActivity)getActivity()).login(email.getText().toString(), password.getText().toString());

and make your login function non-static 并使您的登录功能为非静态

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM