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);
}
}
我无法查明错误,但也许你可以。
尝试在您键入的每一行之后检查,看看按钮是否出现。还要检查问题是否仅与按钮有关,还是也扩展到其他布局。
- 只需键入,看看会发生什么。
- 用维度跟进。
不要忘记在每一步后保存。通常这些问题都可以通过详细调试来解决。
如果出现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);
}
}
我是 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);
}
}
我无法查明错误,但也许你可以。 尝试在您键入的每一行之后检查,看看按钮是否出现。还要检查问题是否仅与按钮有关,还是也扩展到其他布局。
- 只需键入,看看会发生什么。
- 用维度跟进。
不要忘记在每一步后保存。通常这些问题都可以通过详细调试来解决。 如果出现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);
}
}