Tengo problemas para agregar un botón a un diseño que he creado en XML. Esto es lo que quiero lograr:Agregar botón a un diseño programáticamente
//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()));
}
Quiero añadir un Button
a esta nueva pantalla de modo que va a aparecer debajo del gráfico. He intentado crear una vista LinearLayout
, a continuación, crear una Button
y añadirlo a este punto de vista, pero apenas consigo NullPointerException
s ..
sería apreciada Cualquier ayuda. Gracias
editar # 1
Esto es lo que he intentado usar que crea un NullPointerException
y 'Forzar cierre':
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);
}
Y aquí está el error 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)
¿Hay más líneas que ver con este error en logcat, no estoy seguro si lo quiere?
editar # 2
así que traté bhups método:
@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);
}
Este método produce el mismo error Logcat que el anterior, NullPointerException
, indicando que era algo que ver con la línea no. 27 que es la línea de código layout.addView
. ¿Algunas ideas? Gracias de nuevo
nos muestran lo que intentaste y la logcat te ejecución que, por lo que intentamos averiguar por qué se obtiene NPE de todas formas considerar la creación de un layout 'screen_temperature.xml' y el uso que, en 'setContentView()'. usted puede agregar en xml su vista personalizada especificando también el paquete completo, en lugar de solo el nombre (es decir: ' ') –
bigstones
crear un diseño lineal (ll) y agregar GraphTemp ve el objeto y el objeto del botón a ll. Luego configure la vista de contenido de la actividad en ll. es decir, setContentView (ll); – bhups