在Android Activity中看不到按钮

时间:2013-04-23 23:16:11

标签: android button

无论我尝试过,我都看不到底部的按钮。顶部应该有一个TextView,下面应该有六个按钮。但不知何故,我看不到它们。我看了here,还看了here,但他们没有帮助。请告诉我,有什么问题?这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="23dp"
        android:layout_marginTop="17dp"
        android:text="TextView" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="74dp"
        android:layout_marginTop="64dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="@string/bttn_aux1"
        android:onClick="is_clicked" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:text="@string/bttn_aux2"
        android:onClick="can_clicked" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button2"
        android:layout_below="@+id/button2"
        android:text="@string/bttn_aux3"
        android:onClick="must_clicked" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button3"
        android:layout_below="@+id/button3"
        android:text="@string/bttn_aux4"
        android:onClick="do_clicked" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button4"
        android:layout_below="@+id/button4"
        android:text="@string/bttn_aux5"
        android:onClick="will_clicked" />

    <Button
        android:id="@+id/button6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button5"
        android:layout_below="@+id/button5"
        android:text="@string/bttn_aux6"
        android:onClick="has_clicked" />

</RelativeLayout>

编辑:这也是我的活动:

public class AuxilaryVerbs extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_auxilary);

        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRAMESSAGE_MAIN);

        TextView textView = new TextView(this);
        textView.setTextSize(30);
        textView.setText(message);

        setContentView(textView);
    }

    public void is_clicked(View view)   {


    }
    public void can_clicked(View view)  {


    }
    public void must_clicked(View view) {


    }
    public void do_clicked(View view)   {


    }
    public void will_clicked(View view) {


    }
    public void has_clicked(View view)  {


    }
}

2 个答案:

答案 0 :(得分:4)

Eclipse自动xml生成器添加了许多您不需要的额外属性,当您尝试手动编辑它时,您会迷路。

首先将RelativeLaout替换为LinearLayout并使其垂直,这将使其更简单。然后删除所有layout_toRightOf,left,below etc属性并使其变得简单。然后你会看到你所有的按钮。但是,如果没有足够的空间在设备中显示所有内容,则必须在ScrollView中放置按钮,以便滚动并获取所有按钮。

我尝试更新xml(可能存在一些拼写错误)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="23dp"
        android:layout_marginTop="17dp"
        android:text="TextView" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="74dp"
        android:layout_marginTop="64dp"
        android:text="@string/bttn_aux1"
        android:onClick="is_clicked" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/bttn_aux2"
        android:onClick="can_clicked" />

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/bttn_aux3"
        android:onClick="must_clicked" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/bttn_aux4"
        android:onClick="do_clicked" />

    <Button
        android:id="@+id/button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/bttn_aux5"
        android:onClick="will_clicked" />

    <Button
        android:id="@+id/button6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/bttn_aux6"
        android:onClick="has_clicked" />

</LinearLayout>

修改 删除它。您只使用此textView设置整个视图。您已经设定了自己的观点。

 setContentView(textView);

您已使用以下行设置布局。你不应该再次覆盖它。

setContentView(R.layout.activity_auxilary);

当您使用布局文件setContentView时,您已经拥有了textview。您可以使用以下行访问它。

TextView textView = (TextView) v.findViewById(R.id.textView1); // id of textview from layoutfile

就是这样,不要覆盖视图。

答案 1 :(得分:0)

您对先前声明的ID的引用不正确。

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1" <---no plus sign; "@id/textView1"
    android:layout_marginLeft="74dp"
    android:layout_marginTop="64dp"
    android:layout_toRightOf="@+id/textView1" <---no plus sign;
    android:text="@string/bttn_aux1"
    android:onClick="is_clicked" />

以下字段存在同样的问题。

仅在首次分配ID时使用加号,以便声明该ID。当id已经被声明时,无需使用加号。