gpt4 book ai didi

Android ImageButton 在 Activity 中运行良好。它在 fragment 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:51 24 4
gpt4 key购买 nike

我正在尝试转换布局以使其包含 fragment 。其中一个 View 是具有监听器的 ImageButton。该代码作为 Activity 运行良好,但作为 Fragment 时会出现问题...

第一个问题是我无法使用 findViewById,但我能够在这里找到答案并使用 getView() 修复它。

我找不到第二个问题的答案...在我声明之后:

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1);

我想设置一个点击监听器:

camBt.setOnClickListener(listener);

但它一直表现得好像 ImageButton (camBt) 不存在一样......我什至不知道出了什么问题……它在 Activity 中运行良好……

这是完整的代码。非常感谢!

public class CameraFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View V = inflater.inflate(R.layout.camera_fragment, container, false);
return V;
}

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1);
camBt.setOnClickListener(listener);

ImageButton.OnClickListener listener = new ImageButton.OnClickListener()
{

@Override
public void onClick(View arg0)
{
Camera.open().getParameters();
}
};
}

最佳答案

移动

ImageButton camBt = (ImageButton)getView().findViewById(R.id.button1);
camBt.setOnClickListener(listener);

onCreateView() 中。

喜欢

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.camera_fragment, container, false);

// Here it is
ImageButton camBt = (ImageButton)v.findViewById(R.id.button1);
camBt.setOnClickListener(listener);


return v;
}

还有一件事你需要明白变量名应该以小写字母开头。所以你应该使用 View v 而不是 View V

关于Android ImageButton 在 Activity 中运行良好。它在 fragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21903654/

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