Java 在Android中,如何在RelativeLayout中的按钮旁边以编程方式显示文本视图?

Java 在Android中,如何在RelativeLayout中的按钮旁边以编程方式显示文本视图?,java,android,android-layout,android-relativelayout,Java,Android,Android Layout,Android Relativelayout,我创建了一个RelativeLayout,其中包含一个按钮和一个文本视图。使用此代码,文本视图显示在按钮上方。如何将按钮左侧与文本视图右侧对齐?少了什么? 这是我的代码: final RelativeLayout topRelativeLayout = new RelativeLayout(this); RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(Linear

我创建了一个
RelativeLayout
,其中包含一个
按钮
和一个
文本视图
。使用此代码,
文本视图
显示在
按钮
上方。如何将
按钮
左侧与
文本视图
右侧对齐?少了什么? 这是我的代码:

    final RelativeLayout topRelativeLayout = new RelativeLayout(this);
    RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    topRelativeLayout.setLayoutParams(relativeLayoutParams);
    mainLinearLayout.addView(topRelativeLayout);

    final Button restartButton = new Button(this);
    restartButton.setText(R.string.restartButton);
    LinearLayout.LayoutParams buttonParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    restartButton.setLayoutParams(buttonParams);
    restartButton.setGravity(Gravity.LEFT);
    topRelativeLayout.addView(restartButton);

    final TextView timeTextView = new TextView(this);
    timeTextView.setText(R.string.timeTextView);
    timeTextView.setGravity(Gravity.RIGHT);
    topRelativeLayout.addView(timeTextView);

谢谢

如果这确实是您想要实现的,那么您需要使用该视图上的setID方法为按钮或TextView设置一个ID。完成后,可以将其他视图的布局参数设置为相对于按钮的位置。像这样:

button.setId(1011);///OR WHATEVER INT YOU WANT
textView.setLayoutParams(new RelativeLayout.LayoutParams(width,height,left,top,right,bottomPadding,null,new int[][]{{RelatitiveLayout.ABOVE, button.getId()}});
要在相对视图中设置视图的对齐方式,请使用以下命令:

button.setLayoutParams(new RelativeLayout.LayoutParams(width,height,0,0,0,0,new int[]{RelativeLayout.ALIGN_PARENT_RIGHT}));
试试这个

RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
button.setLayoutParams(buttonParams);

RelativeLayout.LayoutParams textviewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
textviewParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
textView.setLayoutParams(textviewParams);

为什么不在XML中执行此操作?有没有一个原因是你不能用XML来做这件事,而必须通过编程来做呢?是的,我不想使用
.XML
,因为在这个简单的例子中,你看到的
TextView
至少是45,我不想手动编写它们。如何对齐
按钮
左侧和
文本视图
右侧?为什么会有45个文本视图?您可以简单地使用“span”或让setText()设置一个更长的字符stringsearch,这样在发布问题之前,您就不会看到我的情况了。我已经动态地创建了所有。Colns Abt,给了我正确的答案。工作完美!非常感谢你!