从片段中的 Activity 调用方法
Calling method from Activity in fragment
我有一个 Activity (1) 有两个片段。这个 Activity 使用我在我的应用程序中常用的基本方法扩展到另一个 (2)。所以我想在单击位于 (1) 的片段之一中的一个按钮后调用 (2) 的方法,执行此操作的最佳方法是什么?
我正在尝试这样做:
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());
}
}
});
但是它说不能从静态上下文中引用非静态方法。所以我试着这样做:
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());
}
}
});
但它不起作用。
试试这个
((AuthenticationActivity)getActivity()).login(email.getText().toString(), password.getText().toString());
并使您的登录功能非静态
我有一个 Activity (1) 有两个片段。这个 Activity 使用我在我的应用程序中常用的基本方法扩展到另一个 (2)。所以我想在单击位于 (1) 的片段之一中的一个按钮后调用 (2) 的方法,执行此操作的最佳方法是什么?
我正在尝试这样做:
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());
}
}
});
但是它说不能从静态上下文中引用非静态方法。所以我试着这样做:
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());
}
}
});
但它不起作用。
试试这个
((AuthenticationActivity)getActivity()).login(email.getText().toString(), password.getText().toString());
并使您的登录功能非静态