在java中设置textview XML

时间:2013-06-30 23:06:58

标签: java android eclipse

我的应用有edittext和一个按钮。每次我单击一个按钮时,都会向活动添加一个新的textview。以下是代码:

public void novVnos (View v){
    EditText eText = (EditText) findViewById(R.id.editText1);
    RelativeLayout mLayout = (RelativeLayout) findViewById(R.id.relativeLayout);

    mLayout.addView(createNewTextView(eText.getText().toString()));
}

private TextView createNewTextView (String text){
    final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    final TextView textView = new TextView(this);
    int counter = 0;

    counter += 1;
    textView.setLayoutParams(lparams);
    textView.setText(counter + ". " + text);
    return textView;
}

现在的问题是,无论何时我使用按钮添加新的textview,它都会自动放置在活动的左上角,但我希望它在其他地方。我已经(手动)为此活动添加了一个新的textview,我希望每个新的textview都自动放置在已存在的textview下。

2 个答案:

答案 0 :(得分:3)

我不确定你是否真的需要在那里使用RelativeLayout,我强烈建议使用LinearLayout而不是将方向设置为vertical,这会使所有视图相互添加。

如果你真的需要一个RelativeLayout,当然也有一种方法。但是您必须指定正确的LayoutParams。每个默认视图组都有自己的LayoutParams类。 使用RelativeLayout.LayoutParams - 尤其是方法addRule(RelativeLayout.BELOW, idOfOtherView) - 您可以将视图告知另一个视图。

答案 1 :(得分:1)

在XML上使用垂直方向的LinearLayout,而不是RelativeLayout。