仅从java代码

时间:2017-12-20 17:09:10

标签: java android android-fragments

我正在开发一个有多个屏幕的应用程序,它们只会在那里被用户点击一两次。我不想用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);

        }
    });

那我该怎么办?或者甚至可能吗?

2 个答案:

答案 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"。