我是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
答案 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>