无法将按钮和文本字段添加到我的Android应用程序

时间:2014-01-12 03:47:57

标签: android user-interface

好的,所以我按照developer.android.com上的Android教程来构建我的第一个应用程序。因此,为了创建一个简单的用户界面,我添加了教程中给出的按钮和文本字段。但是当我在手机上运行它时,我看不到按钮或文本字段。

    package com.example.lookforbuttons;
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.TextView;

    public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            TextView tv= new TextView(this);
            tv.setText("Buttons");
            setContentView(tv);
        }
    }

我描述布局的.xml文件是:

    <?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:orientation="horizontal">
        <EditText android:id="@+id/edit_message"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="@string/edit_message" />
        <Button android:id="@+id/send"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/button_send" />
    </LinearLayout>

并且strings.xml如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="app_name">Buttons</string>
        <string name="edit_message">Enter a message</string>
        <string name="button_send">Send</string>
        <string name="action_settings">Settings</string>
        <string name="title_activity_main">MainActivity</string>
    </resources>

目标Android版本是4.03,因为我在4.03手机上测试它。当我运行这个时,我只打印了“Buttons”,没有按钮或文本字段。感谢。

2 个答案:

答案 0 :(得分:0)

您拨打setContentView两次。执行此操作时,第二次是您将在屏幕上看到的内容,因为它将覆盖您在第一次调用layout时调用的setContentView()。所以,你打电话给

setContentView(tv);

最后你只有TextView。删除该行,您应该会看到EditTextButton

答案 1 :(得分:0)

在您的代码中,您要设置setContentview()两次。这意味着您要更改包含layout Button的{​​{1}}和TextViewsetContentview()。 如果您要向TextView动态添加新的layout。删除第二个setContentView()并为xml中的id分配LinearLayout。然后在Java代码中找到它并说出linearlayout.add(textview)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/lv"
   xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <EditText android:id="@+id/edittext"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
    <Button android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send" />
</LinearLayout>


Linearlayout lv=(Linearlayout) findViewById(R.id.lv);
lv.add(textview);