Je n'arrive pas à ajouter un bouton à une mise en page que j'ai créée en XML. Voici ce que je veux atteindre:Ajout d'un bouton à une mise en page par programmation
//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()));
}
Je veux ajouter un Button
à ce nouvel écran pour que celui-ci apparaît sous le graphique. J'ai essayé de créer une vue LinearLayout
, puis créer un Button
et l'ajouter à ce point de vue, mais je viens d'obtenir NullPointerException
s ..
Toute aide serait appréciée. Merci
EDIT # 1
Voici ce que j'ai essayé d'utiliser qui a créé un NullPointerException
et 'la force de fermeture':
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);
}
Et voici l'erreur 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)
theres il ya bien plus de lignes à faire avec cette erreur dans logcat, pas sûr si vous le voulez?
EDIT # 2
donc j'ai essayé méthode 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);
}
Cette méthode a produit la même erreur logcat comme ci-dessus, NullPointerException
, indiquant qu'il avait quelque chose à voir avec la ligne n °. 27 qui est la ligne de code layout.addView
. Des idées? Merci encore
nous montrer ce que vous avez essayé et logcat vous êtes en cours d'exécution qui, alors nous essayons de savoir pourquoi vous NPE envisager de toute façon de créer une mise en page 'screen_temperature.xml' et l'utilisation que 'setContentView()'. vous pouvez ajouter en xml votre vue personnalisée en spécifiant le paquet entier aussi, au lieu de simplement le nom (ie: ' ') –
bigstones
créer une disposition linéaire (ll) et ajouter Objet de vue GraphTemp et objet de bouton à ll. Définissez ensuite la vue du contenu de l'activité sur ll. c'est-à-dire setContentView (ll); – bhups