Android获取活动中片段的视图[重复]

Posted

技术标签:

【中文标题】Android获取活动中片段的视图[重复]【英文标题】:Android get view of fragment in activity [duplicate] 【发布时间】:2020-10-05 22:44:14 【问题描述】:

我有一个活动,我们称之为A,它会像这样启动一个片段:

remoteFragment = new RemoteFragment();
getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.frameLayout_remote_activity, remoteFragment)
        .commit();

我的remoteFragment 看起来像这样:

public Button okBtn;

public RemoteFragment() 
    // Required empty public constructor


@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                         Bundle savedInstanceState) 
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_remote, container, false);
    okBtn= view.findViewById(R.id.okBtn);

    return view;


public RemoteLayoutView getOkBtn() 
    return okBtn;

在我的活动中,我试图做到这一点:

Button okBtnMessageNotWorking = remoteFragment.getOkBtn();

okBtnMessageNotWorking 始终为空。

我的问题是如何从我的活动中的片段中获取视图对象?

【问题讨论】:

逻辑上没有限制这样做。也许您在创建片段视图之前调用了getOkBtn 尝试将按钮和方法设为静态 【参考方案1】:

在这里,您正试图从layoutOnTopScrollview 中找到视图。相反,您应该从膨胀视图中找到okBtn。请更改代码如下:

@Override
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
                         Bundle savedInstanceState) 
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_remote, container, false);
    okBtn= view.findViewById(R.id.okBtn);

    return view;

另外,请确保您在创建片段后调用此方法。

【讨论】:

请看我编辑的代码。我的问题有错误

以上是关于Android获取活动中片段的视图[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从 Firestore 回收视图中获取文件时遇到问题 [重复]

可扩展列表视图在 android 的片段活动中不起作用

如何使用视图绑定从片段更改父活动中的视图[重复]

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]

在Android中将数据从基本活动发送到片段[重复]

Android:在视图/活动/片段之间滑动切换