我正在开发一个有多个屏幕的应用程序,它们只会在那里被用户点击一两次。我不想用XML创建所有这些屏幕。所以我正在寻找一个解决方案,我可以暂时创建一个屏幕(片段),一旦用户与它交互,我将只是销毁它并显示下一个屏幕。到目前为止,我只能在活动上放一个按钮。单击时应打开一个片段。但我有点卡在那里。
这是我的代码
RelativeLayout relativeLayout = findViewById(R.id.rootView);
relativeLayout.setBackgroundColor(Color.parseColor("#dddddd"));
relativeLayout.setPadding(16,16,16,16);
Button button = new Button(getApplicationContext());
button.setText("Launch Activity");
button.setAllCaps(false);
button.setBackgroundColor(Color.parseColor("#dddddd"));
button.setTextColor(Color.parseColor("#222222"));
button.setPadding(4,4,4,4);
button.setVisibility(View.VISIBLE);
button.setLayoutParams(new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
));
relativeLayout.addView(button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(MainActivity.this, "I am clicked", Toast.LENGTH_SHORT).show();
Fragment fragment = new Fragment();
RelativeLayout relativeLayout1 = new RelativeLayout(getApplicationContext());
TextView textView = new TextView(getApplicationContext());
textView.setText("This a new activity");
textView.setTextSize(14.2f);
textView.setTextColor(Color.parseColor("#222222"));
textView.setAllCaps(false);
relativeLayout1.addView(textView);
}
});
那我该怎么办?或者甚至可能吗?
答案 0 :(得分:1)
如果要创建具有某种视图的片段,则必须覆盖onCreateView
@Nullable
public View onCreateView(@NotNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
//add creating view logic here
.
.
.
//return view here
return view;
}
答案 1 :(得分:1)
首先,它是可能的,XML是一种简单的UI方式。无论如何,最好创建一个新的类并实现和扩展,所以你将分别制作它们。 如果你打算使用Fragment,你必须实现" onCreateView"。