Итак, я недавно написал простой код, который добавляет TextView
к существующему RelativeLayout
, который существует в другом фрагменте, код работал нормально, и добавляю TextView
без каких-либо проблем, например:
public class FragmentSwitch extends Fragment {
private int id;
public FragmentSwitcher(int id) {
this.id = id;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(id, container, false);
if (id == R.layout.fragment1) {
create_text(1, v, "test", getActivity());
}
}
private void create_text(int id, View v, String txt, Context ctx) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
TextView the_text = new TextView(ctx);
day_text.setLayoutParams(params);
day_text.setText(txt);
day_text.setTextSize(20);
day_text.setTextColor(Color.parseColor("#000000"));
day_text.setGravity(Gravity.CENTER);
RelativeLayout main_container = v.findViewById(R.id.main1);
main_container.addView(the_text);
}
}
Но когда я пытаюсь сделать то же самое из отдельного класса, например:
public class objectsCreator {
private Context ctx;
public objectsCreator(Context ctx) {
this.ctx = ctx;
}
public void create_text(int id, View v, String txt) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
TextView the_text = new TextView(this.ctx);
day_text.setLayoutParams(params);
day_text.setText(txt);
day_text.setTextSize(20);
day_text.setTextColor(Color.parseColor("#000000"));
day_text.setGravity(Gravity.CENTER);
RelativeLayout main_container = v.findViewById(R.id.main1);
main_container.addView(the_text);
}
}
public class FragmentSwitch extends Fragment {
private int id;
public FragmentSwitcher(int id) {
this.id = id;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(id, container, false);
objectsCreator oc = new objectsCreator(getActivity());
if (id == R.layout.fragment1) {
oc.create_text(1, v, "test");
}
}
}
, он просто не работает, не показывает ошибок и не добавляет TextView
, приложение даже не треснет sh, если я не попытаюсь сделать то же самое, используя класс Thread
, так в чем может быть проблема?