Я пытался динамически добавлять кнопки в свой фрагмент, но все методы, которые я пробовал, почему-то не работают.
Вот некоторые методы, которые я пробовал:
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;
}
Это даст мне следующий скриншот Первый метод .
Мне действительно не нравится это, поскольку это создаст кнопку на самой Деятельности, которая появится на моих других Фрагментах, которые используют ту же самую Деятельность.
- Для второго метода
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 (). Но я не вижу реальных кнопок на моем Также невозможно щелкнуть по нему.
Я пытался ссылаться на эти
urls: Программно добавить кнопки к фрагменту
Программное добавление кнопок к фрагменту
Как программно добавить кнопку во фрагмент
Любая помощь будет по достоинству оценена.