我一直在尝试动态地将按钮添加到我的片段中,但我尝试过的所有方法都不起作用。
这些是我尝试过的一些方法:
1.
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
LinearLayout linearlayout = new LinearLayout(getActivity());
LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
linearlayout.setLayoutParams(buttonParams);
linearlayout.setOrientation(LinearLayout.HORIZONTAL);
Button button = new Button(getActivity());
button.setLayoutParams(buttonParams);
button.setText("????????????????????");
button.setTextSize(16);
Button button2 = new Button(getActivity());
button2.setLayoutParams(buttonParams);
button2.setText("!!!!!!!!!!!!!!!!!!");
button2.setTextSize(64);
linearlayout.addView(button);
linearlayout.addView(button2);
container.addView(linearlayout);
View myView = inflater.inflate(R.layout.fragment_general_layout, container, false);
return myView;
}
这会给我以下屏幕截图第一种方法 https://i.stack.imgur.com/abyHG.png。
我真的不喜欢这个,因为这会在活动本身上创建一个按钮,该按钮会出现在使用相同活动的其他片段上。
- 对于第二种方法
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View myView = inflater.inflate(R.layout.fragment_general_layout, container, false);
for (int i = 0; i < ArrayOfNames.length; i++) {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
Button btn = new Button(myView.getContext());
btn.setId(i);
final int id_ = btn.getId();
btn.setText(ArrayOfNames[i]);
btn.setBackgroundColor(Color.CYAN);
btn.setLayoutParams(params);
linearlayout.addView(btn, params);
btn = myView.findViewById(id_);
btn.setVisibility(View.VISIBLE);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do smth
}
});
return myView;
}
我认为这个方法将使按钮(因为代码运行良好,并且至少在设置 OnClickListner() 时按钮没有空指针引用。但我看不到我屏幕上的实际按钮。另外,无法点击它。
我尝试参考这些
网址:以编程方式将按钮添加到 Fragment https://stackoverflow.com/questions/34963818/programmatically-add-buttons-to-a-fragment
以编程方式向片段添加按钮 https://stackoverflow.com/questions/11066847/adding-buttons-programmatically-to-a-fragment
如何以编程方式将按钮添加到片段 https://stackoverflow.com/questions/24807982/how-to-add-a-button-programmatically-to-a-fragment?lq=1
任何帮助将非常感激。