TextView不会显示分配给它的值

时间:2014-06-19 13:56:24

标签: android xml

任何人都可以告诉我为什么没有显示TextView的值。我为TextView programmaticall赋值,但它没有显示。我还尝试使用TextViewandroid:Text分配值,但文本永远不会出现。任何想法为什么会这样。请参阅下面的xml文件。

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogContainer">

<RelativeLayout 
    android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogRelativeLayout00"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_gravity="left"
    android:background="@drawable/dialog_border">
    <TableLayout 
        android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogTableLayout00"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TableRow 
            android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogTableRow00"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/dialog_border">
            <ImageView 
                android:id="@+id/emptyDataBaseWarningDialogIcon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_action_warning"/>
            <TextView
                android:id="@+id/emptyDataBaseWarningDialogTitleMessageValue"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="zsfsafsFS DSFAS"
                android:textColor="@android:color/black"/>
        </TableRow>

        <TableRow 
            android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogTableRow01"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/dialog_border"
            android:layout_marginTop="2dp">
            <TextView
                android:id="@+id/emptyDataBaseWarningDialogMessageValue"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"/>
        </TableRow>

        <TableRow 
            android:id="@+id/mySavedLocationsEmptyDataBaseWarningDialogTableRow02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/dialog_border">
            <Button
                android:id="@+id/emptyDataBaseWarningDialogBtnYes"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Yes"/>
            <Button
                android:id="@+id/emptyDataBaseWarningDialogBtnCancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Cancel"/>
        </TableRow>
    </TableLayout>
</RelativeLayout>

JavaCode:

    emptyDBWarningDialog.setCancelable(true);
    LayoutInflater mDialogInflater = LayoutInflater.from(getApplicationContext());
    View DialogInflatedView = mDialogInflater.inflate(R.layout.my_saved_locations_emptydatabasewarningdialog, null);
    emptyDBWarningDialog.setContentView(DialogInflatedView);

    emptyDBWarningDialog.getWindow().setBackgroundDrawableResource(android.R.color.holo_green_dark);

    LinearLayout mLL = (LinearLayout) emptyDBWarningDialog.findViewById(R.id.mySavedLocationsEmptyDataBaseWarningDialogContainer);
    TextView dialogTitle = (TextView) emptyDBWarningDialog.findViewById(R.id.emptyDataBaseWarningDialogTitleMessageValue);
    TextView dialogMsg = (TextView) emptyDBWarningDialog.findViewById(R.id.emptyDataBaseWarningDialogMessageValue);
    Button yesBtn = (Button) emptyDBWarningDialog.findViewById(R.id.emptyDataBaseWarningDialogBtnYes);
    Button cancelBtn = (Button) emptyDBWarningDialog.findViewById(R.id.emptyDataBaseWarningDialogBtnCancel);

    dialogTitle.setText(EMPTY_DATABASE_DIALOG_TITLE);
    dialogMsg.setText(EMPTY_DATABASE_DIALOG_MSG);

    emptyDBWarningDialog.show();

2 个答案:

答案 0 :(得分:1)

是否使用LinearLayout或RelativeLayout确实取决于您的设计 在这种情况下,一个相对于自己和/或彼此设置子项的RelativeLayout是可取的。

单个RelativeLayout也会保持观看次数,以获得更好的效果。

TextView最多可容纳4个复合绘图(以及背景) 这些可以设置在顶部,底部,左侧和/或右侧附近 在你的情况下,android:drawableLeft将为你的TextView

制作完美的图标

现在这是我对你的布局的极端改造

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:id="@+id/txtTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="8dp"
        android:drawableLeft="@drawable/ic_action_warning"
        android:drawablePadding="8dp"
        android:textColor="@android:color/black"
    />
    <TextView
        android:id="@+id/txtEmptyDB"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="zsfsafsFS DSFAS"
        android:textColor="@android:color/black"
    />
    <Button
        android:id="@+id/btnYes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="Yes"
    />
    <Button
        android:id="@+id/btnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Cancel"
    />
</RelativeLayout>

也许,你想在LinearLayout中调整两个底部按钮,只是将它们的权重设置为1,将宽度设置为0dp(为了使它们填充底线50%和50%)

像这样(只显示最后一部分,因为其余部分是相同的):

    />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        >
        <Button
            android:id="@+id/btnYes"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Yes"
        />
        <Button
            android:id="@+id/btnCancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Cancel"
        />
    </LinearLayout>
</RelativeLayout>

答案 1 :(得分:0)

我只是怀疑TableLayout并将其更改为RelativeLayout,因此最终的xml_File看起来像下面的布局。 textview的值通常会显示。但我仍然不知道TableLayout

的问题是什么
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" 
android:id="@+id/myContainer">

<RelativeLayout 
    android:id="@+id/RelativeLayout00"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_gravity="center|top"
    android:background="@drawable/dialog_border">
    <ImageView 
        android:id="@+id/WarningDialogIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_action_warning"/>
    <TextView
        android:id="@+id/WarningDialogTitleMsgVal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/emptyDataBaseWarningDialogIcon"
        android:layout_marginTop="8dp"
        android:textColor="@android:color/black"/>
</RelativeLayout>

<RelativeLayout 
    android:id="@+id/RelativeLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_gravity="center|center_horizontal"
    android:background="@drawable/dialog_border">
    <TextView
        android:id="@+id/WarningDialogMsgVal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"/>
</RelativeLayout>

<RelativeLayout 
    android:id="@+id/RelativeLayout02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_gravity="center|bottom"
    android:background="@drawable/dialog_border">
    <Button
        android:id="@+id/BtnYes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Yes"/>
    <Button
        android:id="@+id/BtnCancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/BtnYes"
        android:text="Cancel"/>
</RelativeLayout>