gpt4 book ai didi

java - Android Studio - fragment 按钮 Action

转载 作者:行者123 更新时间:2023-11-30 10:49:12 27 4
gpt4 key购买 nike

我尝试制作一个在开始时显示一个 fragment 的应用程序,然后您可以将该 fragment 更改为另一个 fragment ,并在第一个 fragment 中使用一个按钮。但是,当我将按钮操作放在 fragment java 中时,它不会启动,并且出现 nullpointerexception 错误。你能告诉我为什么吗?

public class Fragment_main extends Fragment {

FragmentManager fm = getFragmentManager();

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Button button_inditas = (Button) getView().findViewById(R.id.button_inditas);
button_inditas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fm.beginTransaction().replace(R.id.content_frame, new Fragment_1()).commit();
}
});
return inflater.inflate(R.layout.fragment_main,container,false);

}
}

最佳答案

But when I put the button action in the fragments java, it won't start and I get the nullpointerexception error. Could you tell me why?

嗯,我看到你的代码有一些错误......

首先,如果您还没有充气,则不能调用 getView(),这意味着您必须充气 View ,因为我将我的回答,然后你可以避免 getView() 并使用 view 本身。

而不是返回充气器,你必须返回你的 View

这就是您的 Fragment 的样子:

 public class Fragment_main extends Fragment {

public Fragment_main() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main,container,false);
Button button_inditas = (Button)rootView.findViewById(R.id.button_inditas);
button_inditas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

FragmentManager fragmentManager = getFragmentManager ();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction ();

fragmentTransaction.add (R.id.content_frame, new Fragment_1());
fragmentTransaction.commit ();


});
return rootView;

}
}

关于java - Android Studio - fragment 按钮 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35490797/

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