단추를 누른 후에 단추를 만들려고합니다 (이 단추는 XML로 미리 작성되었습니다). 사실, LinearLayout에서 이것을 할 수 있지만, 내 buttoncreator 메소드가 실행될 때마다 RelativeLayout으로 전환하면 이전에 생성 된 버튼이 삭제되고 새 버튼이 만들어집니다.RelativeLayout Button Creation
; 내 buttoncreator 방법
public void buttoncreator(String name,RelativeLayout.LayoutParams position,RelativeLayout layout){
positionrandomer(position);
final Button dummybutton = new Button(this);
dummybutton.setText(name);
//these are here for test,it works but still i have the same problem
position.addRule(RelativeLayout.BELOW,R.id.button1);
position.addRule(RelativeLayout.BELOW,R.id.button2);
dummybutton.setLayoutParams(position);
layout.addView(dummybutton);
return;
}
(위치 randomer는 임의의 한계를 설정하는 방법이다).
내가 만든 메서드를 호출 장소
Button luckbutton = (Button) findViewById(R.id.button1);
luckbutton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View arg0) {
name="Blue";
buttoncreator(name,position,layout);
name="Blu4e";
buttoncreator(name,position,layout);
}
});
그래서, 내 의도는, 그러나 그것은 생성, 1 buttonclick에이 개 버튼을 만드는 것입니다 만 1. (실제로, 그 다음 첫 번째를 만들고 그것을 삭제하고, 두 번째 것).
제가 RelativeLayouts에 대해 이해할 수없는 부분이 있습니다. 내가 뭘 잘못하고있는 걸까요?
미리 Thumbnail
빠른 답변을 보내 주셔서 감사합니다. 그러나 이러한 버튼은 코드 목적에 따라 사전 정의되지 않아야합니다. 이것은 LinearLayout에서 간단히 작동합니다. Relativelayout에서 왜 이렇게 작동합니까? – Ozan
사실 두 버튼을 모두 만들고있는 것이 틀림 없습니다. RelativeLayout을 사용하는 것은'layout_below/layout_above' 매개 변수를 설정하여 뷰를 정렬해야한다는 것입니다. 그렇게하지 않으면, 그들은 같은 위치에 머물러있게됩니다. 그래서 그것이 두 번째 버튼 만 생성하는 것이라고 생각합니다. 첫 번째 텍스트를''gdvasjdhaskdhajdhasj'와 같이 더 길게 설정하면 두 번째 버튼 아래에 표시됩니다. –
완료, 예전에 시도했는데 그 말이 맞습니다. 코드를 수정하면 돌아올거야. 고마워. – Ozan