我无法将按钮添加到我在XML中创建的布局中。这是我想达到的目标:以编程方式将按钮添加到布局
//some class
else {
startActivity(new Intent(StatisticsScreen.this, ScreenTemperature.class));
}
////
//ScreenTemperatureClass
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this is where I call another class that
//displays a nice graph
setContentView(new GraphTemperature(getApplicationContext()));
}
我想一个Button
到这个新的屏幕,以便它会显示在图形下方。 我试图创建一个LinearLayout
视图,然后创建一个Button
并将其添加到这个看法,但我只是得到NullPointerException
秒。
任何帮助,将不胜感激。由于
编辑#1
这里就是我使用创建一个NullPointerException
和 '强制关闭' 的尝试:
Button buybutton;
LinearLayout layout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphTemperature(getApplicationContext()));
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(buyButton);
}
而这里的logcat的错误:
ERROR/AndroidRuntime(293): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.weatherapp/com.weatherapp.ScreenTemperature}: java.lang.NullPointerException
ERROR/AndroidRuntime(293): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
ERROR/AndroidRuntime(293): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
ERROR/AndroidRuntime(293): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
在logcat中显然有更多的线路处理这个错误,不确定是否需要它?
EDIT#2
所以我尝试bhups方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GraphTemperature GT = new GraphTemperature(getApplicationContext());
layout = (LinearLayout) findViewById(R.id.statsviewlayout);
Button buyButton = new Button(this);
buyButton.setText(R.string.button_back);
buyButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(GT); // line 27
layout.addView(buyButton);
setContentView(layout);
}
此方法生产的相同的logcat错误如上,NullPointerException
,表明它是是与线没有。 27这是layout.addView
代码行。有任何想法吗?再次感谢
让我们了解您尝试与logcat的你得到运行,所以我们试图找出为什么你NPE反正考虑创建一个`screen_temperature.xml`布局和使用,在`的setContentView()`。你可以通过指定整个包来添加xml自定义视图,而不仅仅是名称(即:` `) –
bigstones
2011-02-05 15:29:16
创建线性布局(ll)并添加GraphTemp视图对象和按钮对象为ll。然后将活动的内容视图设置为ll。即setContentView(ll); – bhups 2011-02-05 15:39:23