Android 试图从父活动调用片段方法,但未解析该方法
我在这里尝试了解决方案: 但这对我不起作用 我的片段中有这个方法Android 试图从父活动调用片段方法,但未解析该方法,android,android-fragments,Android,Android Fragments,我在这里尝试了解决方案: 但这对我不起作用 我的片段中有这个方法 public void showbutton() { sup.setEnabled(true); } 我在家长活动中使用了这个 Fragment fragment = (Fragment) getFragmentManager().findFragmentById(R.id.fragment); fragment.showbutton(); 我确信这是一个愚蠢的错误,我还是Android新手
public void showbutton()
{
sup.setEnabled(true);
}
我在家长活动中使用了这个
Fragment fragment = (Fragment) getFragmentManager().findFragmentById(R.id.fragment);
fragment.showbutton();
我确信这是一个愚蠢的错误,我还是Android新手,所以请原谅。我认为您应该使用片段名称进行类型转换 i、 e
首先,确保访问的是正确的
FragmentManager
,确认需要调用getFragmentManager()
或getSupportFragmentManager()
其次,您应该cast
将片段转换为您的类型。就是
MyFragment fragment = (MyFragment) getFragmentManager().findFragmentById(R.id.fragment);
fragment.showbutton();
这个问题与片段生命周期有关。您正试图调用由android操作系统关闭的fragment方法。您需要在片段中创建bool并将其正常设置为false,但当您需要显示按钮时,只需创建该片段并加载该片段,然后将bool更新为true。稍后检查该bool是否为true启用按钮,否则禁用它。快乐编码 使用回调从片段到活动进行通信
public interface UserAction {
void showButton();
}
在片段中实现接口
@Override
public void showButton() {
sup.setEnabled(true);
}
然后在你的活动中打电话
UserAction mUserAction = getFragmentManager().findFragmentById(R.id.fragment);
mUserAction.showButton();
Fragment
类没有您的showbutton()
方法。您的Fragment
的特定子类有。我有没有办法从父活动中的Fragment子类调用showbutton方法@Mike M.声明并分配fragment
作为您的特定子类,而不仅仅是fragment
。您甚至可以向该接口添加更多函数,用于活动和片段之间的通信
UserAction mUserAction = getFragmentManager().findFragmentById(R.id.fragment);
mUserAction.showButton();