나는 이것이 아마도 연구의 부족으로 인해 여기에 묻는 질문 중 가장 좋은 유형이 아니라는 것을 알고 있지만, 실제로 여기서 어디서부터 시작해야할지 전혀 알지 못합니다. 모든 것이 제대로 작동해야합니다. 어쨌든 UI를 적절하게 적용하고 모든 화면에 완벽하게 적응할 수 있도록 프로그래밍 방식으로 몇 가지 버튼을 앱 UI에 추가하려고합니다.프로그래밍 방식으로 상대적 레이아웃에 버튼 추가
@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);
}
Here is a very rough idea of the format I'm needing (with text in each button of course) 나는 심지어 마법 "내가 너무 게으른이기 때문에 나를 위해 그것을 해결"솔루션을 찾는 게 아니에요. 올바른 방향으로 나를 가리키며, 내가 볼 필요가있는 곳을 보여주세요. 나는이 문제들을 해결하는 것을 즐긴다. 그러나 올바른 자리에서 시작하는 것은 놀라운 일이다.
답장을 보내 주셔서 감사합니다. 이것은 트릭을했다. 저는 C++에 가장 익숙했습니다. 따라서 Java에서 가장 많은 변수가 참조임을 발견하는 것이 이상했습니다! 매혹적인. 어쨌든, 각 단추에 내 setText 메서드가 있음에도 불구하고 단추에는 텍스트가 없습니다. 어떤 생각? –