1

我正在开发一个 Android 应用程序,但我遇到了一些我无法解决的问题。

在 xml 中,我有一个RelativeLayoutwith one ,并且我必须根据变量值EditText动态地插入一个或两个以上。EditText

问题

问题是,当我EditText在第一个(在 xml 中声明的那个)上方插入一个时,它变得如此之高,我看不到它的结尾,我不明白它为什么会发生。

这是我的最新代码:

活动.xml

<!-- Some other layouts -->
<RelativeLayout
    android:id="@+id/relativeLayoutLectura1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/linearLayoutMensajeLectura"
    android:layout_marginLeft="25dp"
    android:layout_marginRight="25dp"
    android:layout_marginTop="10dp">

    <EditText
        android:id="@+id/editTextLectura1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/introducir_lectura"
        android:textSize="@dimen/textSize" />

</RelativeLayout>
<!-- More layouts -->

活动.java

if(lecturas > 1) {
    // Have to insert lecturas-1 EditText
    RelativeLayout parentLayout = (RelativeLayout) 
    findViewById(R.id.relativeLayoutLectura1);
    for(int lectura = 2; lectura < lecturas; lectura++) {
        EditText editTextLectura = new EditText(this);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
        if(lectura == 2) {
            //Insert below the one created in xml
            params.addRule(RelativeLayout.BELOW, R.id.editTextLectura1);
        } else {
            //Insert below the one created in previous iteration
            params.addRule(RelativeLayout.BELOW, lectura-1);
        }
        editTextLectura.setLayoutParams(params);
        editTextLectura.setId(lectura);
        editTextLectura.setHint(R.string.introducir_lectura);
        editTextLectura.setTextSize(R.dimen.textSize);
        //Add to layout
        parentLayout.addView(editTextLectura);
    }
}

你能帮我找出问题吗?EditText可以正确看到在 xml 中创建的内容,并且由代码创建的内容设置在正确的位置。

4

1 回答 1

0

我找到了解决方案!我用:

editTextLectura.setTextSize(R.dimen.textSize);

textSize在 dimen 文件中声明:

<resources>
    <!-- Other dimen -->
    <dimen name="textSize">15dp</dimen>
</resources>

而且,如您所见,我也在 xml 中使用它,并且运行正常:

<EditText ...
    android:textSize="@dimen/textSize" />

我不知道为什么,但如果我把15dp而不是R.dimen.textSize放在我的Activity代码上,那没关系。

如果有人能解释一下,我会很高兴。

于 2013-07-09T19:13:35.750 回答