gpt4 book ai didi

java - 更改 fragment 内的布局参数

转载 作者:行者123 更新时间:2023-12-01 23:00:51 25 4
gpt4 key购买 nike

我正在尝试制作一个按钮,该按钮将在其旁边添加新按钮。我正在尝试在我的 fragment 中执行此操作,但我遇到了问题。当我单击该按钮时,我的应用程序立即崩溃,并且收到此错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.LinearLayout.addView(android.view.View)' on a null object reference.

由于我是编程新手,如果有人能帮助我那就太好了。附:如果这不是推荐的方法,我想问您是否可以为我提供一种更好的方法来通过一个按钮添加更多按钮。

我的Java代码:

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.frag2,container,false);
dugme = (Button) v.findViewById(R.id.dugme);
dugme.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout linearni = (LinearLayout)v.findViewById(R.id.linearni);
Button newbtn = new Button(getActivity());
newbtn.setLayoutParams(new LinearLayout.LayoutParams(150,150));
newbtn.setText("Yea");
linearni.addView(newbtn);
}
});
return v ;
}

最佳答案

  • 首先,您必须检查在 LinearLayout 的 findViewById 方法“linearni”中传递的 id 与 frag2.xml 文件中声明的 LinearLayout 的 id。

  • 第二件事,您可以在按钮的单击事件之外找到 LinearLayout。

像这样

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.frag2,container,false);
LinearLayout linearni = (LinearLayout)v.findViewById(R.id.linearni);

dugme = (Button) v.findViewById(R.id.dugme);
dugme.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Button newbtn = new Button(getActivity().getApplicationContext());
newbtn.setLayoutParams(new LinearLayout.LayoutParams(150,150));
newbtn.setText("Yea");
linearni.addView(newbtn);
}
});
return v;
}

关于java - 更改 fragment 内的布局参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422845/

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