XML 없이 화면구현하기
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
LinearLayout baseLayout = new LinearLayout(this);
baseLayout.setOrientation(LinearLayout.VERTICAL);
baseLayout.setBackgroundColor(Color.rgb(0,255,0));
setContentView(baseLayout,params);
Button btn = new Button(this);
btn.setText("버튼입니다");
btn.setBackgroundColor(Color.MAGENTA);
baseLayout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"코드로 생성한 버튼입니다.",Toast.LENGTH_SHORT).show();
}
});
}
- 먼저 xml 파일을 삭제하게 되면 setContentView에서 오류가 발생하기 때문에 주석처리 해준다.
- LinearLayout.LayoutParams 객체를 생성하고 MATCH_PARENT 값을 준다. (레이아웃의 파라미터 값)
(레이아웃에 필수로 설정해야하는 width,height 속성값을 설정한다.)
- LinearLayout 객체를 생성하고 필요한 속성인 orientation과 backgroundColor를 설정하였다.
- setContentView로 생성한 baseLayout를 설정한 파라미터 값 params를 가지고 화면에 출력할 수 있도록 한다.
- 버튼 객체를 만들고 setOnClickListener로 버튼의 이벤트를 정의하고 addView()메서드로 버튼을 레이아웃에 추가한다.