Ich weiß, dass dies wahrscheinlich nicht die beste Frage ist, die hier wegen mangelnder Forschung gestellt wird, aber ich habe keine Ahnung, wo ich anfangen soll. Alles scheint so zu sein, dass es gut funktionieren sollte. Jedenfalls versuche ich programmatisch mehrere Schaltflächen zu meiner App-UI hinzuzufügen, um sicherzustellen, dass die Benutzeroberfläche passt und sich nahtlos an alle Bildschirme anpasst. Here is a very rough idea of the format I'm needing (with text in each button of course)Programmatisch Schaltflächen zum relativen Layout hinzufügen
@Override
protected void onCreate(Bundle savedInstanceState) {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout = (RelativeLayout) findViewById(R.id.activity_main);
Point size = new Point();
Display display = getWindowManager().getDefaultDisplay();
display.getRealSize(size);
params = new RelativeLayout.LayoutParams(size.x/5, 200);
padding = size.x/5;
addButtons();
}
public void addButtons() {
Button update = new Button(this);
RelativeLayout.LayoutParams updateParams = params;
updateParams.addRule(RelativeLayout.CENTER_VERTICAL);
update.setLayoutParams(updateParams);
update.setPadding(padding, 0, 0, 0);
update.setText("Update Me!");
update.setOnClickListener(new ClickHandler("app_update"));
updateId = update.generateViewId();
update.setId(updateId);
layout.addView(update);
Button install = new Button(this);
RelativeLayout.LayoutParams installParams = params;
installParams.addRule(RelativeLayout.RIGHT_OF, update.getId());
installParams.addRule(RelativeLayout.CENTER_VERTICAL);
install.setLayoutParams(installParams);
install.setPadding(padding, 0, 0, 0);
install.setText("Install LastBox");
install.setOnClickListener(new ClickHandler("kodi_install"));
installId = install.generateViewId();
install.setId(installId);
layout.addView(install);
Button dlFamily = new Button(this);
RelativeLayout.LayoutParams dlFamilyParams = params;
dlFamilyParams.addRule(RelativeLayout.RIGHT_OF, install.getId());
dlFamilyParams.addRule(RelativeLayout.ABOVE, install.getId());
dlFamily.setLayoutParams(dlFamilyParams);
dlFamily.setPadding(padding, 0, 0, padding);
dlFamily.setText("Download Family Build");
dlFamily.setOnClickListener(new ClickHandler("family_download"));
dlFamilyId = dlFamily.generateViewId();
dlFamily.setId(dlFamilyId);
layout.addView(dlFamily);
Button upFamily = new Button(this);
RelativeLayout.LayoutParams upFamilyParams = params;
upFamilyParams.addRule(RelativeLayout.RIGHT_OF, install.getId());
upFamilyParams.addRule(RelativeLayout.BELOW, install.getId());
upFamily.setLayoutParams(upFamilyParams);
upFamily.setPadding(padding, padding, 0, 0);
upFamily.setText("Update Family Build");
upFamily.setOnClickListener(new ClickHandler("family_update"));
upFamilyId = upFamily.generateViewId();
upFamily.setId(upFamilyId);
layout.addView(upFamily);
Button dlAdult = new Button(this);
RelativeLayout.LayoutParams dlAdultParams = params;
dlAdultParams.addRule(RelativeLayout.RIGHT_OF, dlFamily.getId());
dlAdultParams.addRule(RelativeLayout.ABOVE, install.getId());
dlAdult.setLayoutParams(dlAdultParams);
dlAdult.setPadding(padding, 0, 0, padding);
dlAdult.setText("Download Adult Build");
dlAdult.setOnClickListener(new ClickHandler("adult_download"));
dlAdultId = dlAdult.generateViewId();
dlAdult.setId(dlAdultId);
layout.addView(dlAdult);
Button upAdult = new Button(this);
RelativeLayout.LayoutParams upAdultParams = params;
upAdultParams.addRule(RelativeLayout.RIGHT_OF, upFamily.getId());
upAdultParams.addRule(RelativeLayout.BELOW, install.getId());
upAdult.setLayoutParams(upAdultParams);
upAdult.setPadding(padding, padding, 0, 0);
upAdult.setText("Update Adult Build");
upAdult.setOnClickListener(new ClickHandler("adult_update"));
upAdultId = upAdult.generateViewId();
upAdult.setId(upAdultId);
layout.addView(upAdult);
}
Ich suche nicht einmal für einige magische „reparieren es für mich, weil ich zu faul bin“ Lösung. Zeige mir in die richtige Richtung, zeig mir, wo ich hinschauen muss, solche Sachen. Ich genieße es, diese Probleme zu lösen, aber am richtigen Ort zu beginnen wäre wunderbar.
Vielen Dank für die Antwort. Das hat den Trick gemacht. Ich bin am vertrautesten mit C++, also war es seltsam für mich zu entdecken, dass die meisten Variablen in Java Referenz sind! Faszinierend. Wie auch immer, die Tasten haben keinen Text, trotz meiner setText-Methoden auf jeder Taste. Irgendeine Idee? –