TextView未显示在RelativeLayout中

时间:2016-08-09 21:32:53

标签: android android-layout

我正在尝试从Java动态构建View,我很困惑为什么这不起作用。

TextView displayText根本不会出现在屏幕上。我不明白为什么它不会像上面用户输入他们的名字那样。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        RelativeLayout ceriLayout = new RelativeLayout(this);

        Button genButton = new Button(this);
        genButton.setText("Press here");
        genButton.setId(0);

        TextView displayView = new TextView(this);
        displayView.setText("What is going to go here huh");
        displayView.setId(1);

        EditText nameView = new EditText(this);
        nameView.setText("Enter your name");
        nameView.setId(2);

        RelativeLayout.LayoutParams button = new  RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT
        );

        RelativeLayout.LayoutParams name = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT
        );
        RelativeLayout.LayoutParams display;
        display = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT
        );

        button.addRule(RelativeLayout.CENTER_HORIZONTAL);
        button.addRule(RelativeLayout.CENTER_VERTICAL);

        display.addRule(RelativeLayout.CENTER_HORIZONTAL);
        display.addRule(RelativeLayout.ABOVE, nameView.getId());

        name.addRule(RelativeLayout.CENTER_HORIZONTAL);
        name.addRule(RelativeLayout.ABOVE, genButton.getId());



        ceriLayout.addView(genButton, button);
        ceriLayout.addView(nameView,name);

        setContentView(ceriLayout);

    }
}

1 个答案:

答案 0 :(得分:2)

您没有将displayView添加到ceriLayout。这就是它没有出现的原因。

建议:请尝试学习在View布局文件中编写.xml组件,并将这些布局设置为活动的内容视图。