Android中的不同视图edittext

时间:2014-01-06 22:25:16

标签: android android-layout

当我以编程方式创建EditText时,我没有下划线(在第二个EditText中)。像这样:http://oi41.tinypic.com/2ut427d.jpg

当我在XML中创建EditText时,一切正常,请参阅http://oi44.tinypic.com/nmxdnm.jpg。错误在哪里?

这是我的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="10dp" >

        <include layout="@layout/input_title_layout" />

        <TableLayout
            android:id="@+id/relativeLayout12"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="0dp" >

                <TextView
                    style="@style/tvTitleStyle"
                    android:text="@string/diameter" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:paddingLeft="5dp"
                    android:paddingRight="5dp"
                    android:text=":" />

                <EditText
                    android:id="@+id/diameterValue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:digits="0123456780."
                    android:inputType="numberDecimal" />
            </TableRow>
        </TableLayout>
    </LinearLayout>

</ScrollView>

以编程方式添加EditText的代码:

final TableLayout.LayoutParams tableParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.FILL_PARENT, 1f);
final TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
rowParams.bottomMargin = 0;

TableLayout tableLayout = new TableLayout(context);
tableLayout.setLayoutParams(tableParams);
inputLinearLayout.addView(tableLayout);
TableRow tableRowEdit = new TableRow(context);

TextView titleTv = new TextView(context);
titleTv.setTextAppearance(context, R.style.tvTitleStyle);
titleTv.setText(context.getString(context.getResources().getIdentifier(inputTvs[i] , "string", context.getPackageName())));

TextView separatorTv = new TextView(context);
separatorTv.setGravity(Gravity.LEFT);
separatorTv.setPadding(5, 0, 5, 0);
separatorTv.setText(":");
separatorTv.setTextColor(Color.BLACK);


EditText editText = new EditText(context);
editText.setId(i);

tableRowEdit.addView(titleTv);
tableRowEdit.addView(separatorTv);
tableRowEdit.addView(editText);

tableLayout.addView(tableRowEdit);

1 个答案:

答案 0 :(得分:1)

很难准确说出您提供的代码可能会出现什么问题。

- 您是否尝试过设置TableRow / TextView / EditText的布局参数? TextViews可能占用了所有可见空间。

- 您确定inputLinearLayout已被夸大吗?