Android:按钮未显示在视图中

Android: Button not showing on view

我是 Android 的新手,我想在我的视图中添加一个简单的按钮,但我的视图完全是空白的。这是我的设置:

编辑:我现在已经更改了我的代码以编程方式编写此代码,因为我已经习惯了 iOS。

我现在收到以下错误:

错误:尝试在空对象引用上调用虚方法'void android.widget.LinearLayout.setOrientation(int)'

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

    LinearLayout linearLayout;
    public Button myButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main);

        // Create main view
        linearLayout = (LinearLayout) findViewById(R.id.linearLayout1);
        linearLayout.setOrientation(LinearLayout.VERTICAL);

        // Create button
        myButton = new Button(this);
        myButton.setText("Fire Call");

        // Add button to view
        linearLayout.addView(myButton);
    }
}

我无法查明错误,但也许你可以。 尝试在您键入的每一行之后检查,看看按钮是否出现。还要检查问题是否仅与按钮有关,还是也扩展到其他布局。

  1. 只需键入,看看会发生什么。
  2. 用维度跟进。

不要忘记在每一步后保存。通常这些问题都可以通过详细调试来解决。 如果出现none版面,请尝试并重启软件。

您没有调用 setContentView(R.layout.activity_main) ,在您的代码中,您将其注释掉,因此您的布局没有膨胀,所以您得到一个空白的白屏。取消注释该行,你会没事的。

您需要 setContentView 获取视图或布局资源 ID。

此外,如果您提供布局资源 ID,则只能调用 findViewById,并用它调用 setContentView。或者,您可以对其进行充气并在生成的充气视图上调用 view.findViewById

这是您的代码,其中包含一些更改,有望解决您的新问题:

public class MainActivity extends Activity {

    LinearLayout linearLayout;
    public Button myButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);

        // Create main view
        linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);

        // Create button
        myButton = new Button(this);
        myButton.setText("Fire Call");

        // Add button to view
        linearLayout.addView(myButton);

        setContentView(linearLayout);
    }
}