gpt4 book ai didi

android - 在 fragment 中获取对 LinearLayout 的引用

转载 作者:行者123 更新时间:2023-11-30 01:13:23 26 4
gpt4 key购买 nike

在我的布局的 XML 文件中,我添加了一个 fragment 。我的 fragment 的布局是一个 LinearLayout,它包含一个 TextView 。

我想在我的 fragment 类中获得对 LinearLayout 对象的引用,但尽管尝试了我能想到或在网上找到的所有方法,它始终为 null。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);

text = (TextView) getActivity().findViewById(R.id.text);
layout = (LinearLayout) getActivity().findViewById(R.id.layout);

if(layout == null){
text.setText("null");
}
}

这段代码在我的 fragment 类中,导致 TextView 的文本被设置为“null”,因为布局为 null。这怎么可能,因为我试图以完全相同的方式获取对布局和 TextView 的引用?


在 Activity 类中创建

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

manager = getFragmentManager();
MyFragment = (MyFragment) manager.findFragmentById(R.id.fragment);

}

方法二

我尝试在我的 Activity 中获取对 LinearLayout 的引用。这是此 Activity 的 onCreate 尝试。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

manager = getFragmentManager();
MyFragment = (MyFragment) manager.findFragmentById(R.id.fragment);

LinearLayout ll = (LinearLayout) findViewById(R.id.layout);
TextView tv = (TextView) findViewById(R.id.text);

if(ll == null){
tv.setText("null");
}
}

这也将文本更改为“null”。

最佳答案

通过在 fragment 类中声明 layout = (LinearLayout) getView() 或在 fragment 类中声明 layout = (LinearLayout) fragment.getView() 可以解决这两种情况 Activity 。这并没有回答为什么我所做的不起作用(这可能会有所帮助),但这解决了问题。

关于android - 在 fragment 中获取对 LinearLayout 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38190889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com