按钮未在模拟器或设备上显示

时间:2013-12-26 23:21:47

标签: android android-layout android-emulator android-view android-button

我是Android的初学者。我创建了2个活动。第一个活动有1个按钮(比如说Button1)和1个TextView(比如TextView1),第二个活动有1个TextView(比如TextView2)。第一个活动中TextView的文本值为“Hello World!”,当按下Button1时,打开第二个Activity,传递TextView1的值(即“地狱”)世界!”)。第二个Activity将获得的值分配给TextView2并显示。

所有这一切都很好。

当我向第一个活动添加新的Button(比如说​​Button2)并编写onClick()方法来更改“{1}}的文字来自”Hello World!“时到“你好Android!”反之亦然。现在当我在我的设备或模拟器上运行时,我看不到这个添加的按钮(TextView1),当我点击Button2时它仍然可以正常工作,但我看不到Button1

有人可以帮我吗?

  

XML布局:MainActivity

Button2

4 个答案:

答案 0 :(得分:3)

这是因为你有android:layout_below="@+id/textView"两次。试试这个:

<!-- below the previous view : ourButton -->
<Button
android:id="@+id/ourButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/textView"
android:layout_below="@id/ourButton"
android:layout_marginLeft="50dp"
android:focusable="false"
android:onClick="buttonClick2"
android:text="@string/button_string2" />

另外,请勿使用@+id/来对齐您的布局。您在添加id时正确使用它,但在创建id时,您只需将其android:layout_toLeftOf="@id/prevId"@id对齐即可。


示例:

这里布局:

                         |---- text -----|
                                           <- both are below text
                         |---- view1 ----|| <- view align right
     view align left -> ||---- view2 ----| 

如您所见,左右对齐位于&#34; border&#34; TextView的原因是你在TextView下面设置了 。所以它看起来像这样:

                       |------ text ------|
                                           <- both are below text
  view1 align left -> ||---- view 1&2 ----|| <- view2 align right  

您的观点相互重叠。如果您想在文本下方并排放置两个按钮,请尝试添加容器,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal|center_vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/ourButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="50dp"
            android:onClick="buttonClick"
            android:text="@string/button_string" />

        <Button
            android:id="@+id/ourButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="buttonClick2"
            android:text="@string/button_string2" />

    </LinearLayout>

</RelativeLayout>

希望这有帮助。

答案 1 :(得分:3)

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          tools:context=".MainActivity" >

    <TextView
         android:id="@+id/textView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_centerHorizontal="true"
         android:layout_centerVertical="true"
         android:text="@string/hello_world" />

    <Button
         android:id="@+id/ourButton"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignRight="@+id/textView"
         android:layout_below="@+id/textView"
         android:layout_marginRight="37dp"
         android:onClick="buttonClick"
         android:text="@string/button_string" />

    <Button
         android:id="@+id/ourButton2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@+id/ourButton"
         android:layout_marginLeft="50dp"
         android:focusable="false"
         android:onClick="buttonClick2"
         android:text="@string/button_string2" />

  </RelativeLayout>

答案 2 :(得分:1)

请尝试删除

    android:layout_marginRight="37dp"

然后试试。你能看到xml图形布局的输出吗?当我在我的xml上尝试这个时,我能够在图形布局中看到(我使用了与你的问题一起提到的相同代码)。

答案 3 :(得分:0)

// try this way
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    android:gravity="center"
    android:padding="5dp"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp">
    <Button
        android:id="@+id/ourButton"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:onClick="buttonClick"
        android:layout_marginRight="5dp"
        android:text="@string/button_string" />

    <Button
        android:id="@+id/ourButton2"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:onClick="buttonClick2"
        android:text="@string/button_string2" />
    </LinearLayout>
</LinearLayout>