mojo's Blog

Java 코드로 화면 만들기 본문

Android

Java 코드로 화면 만들기

_mojo_ 2021. 8. 28. 16:09

지금까지 작성한 프로젝트는 기본적으로 XML 에서 code를 작성하여 화면을 구성하고 Java 파일의 setContentView() 메소드를 이용하여 화면을 출력하였다.

 

 

setContentView() 메소드는 XML 파일을 화면에 출력하는 기능을 한다.

R.layout.activity_main 은 바로 activity_main_xml 파일을 의미하므로 activity_main.xml 파일이 화면에 출력되는 것이다. (가장 일반적인 안드로이드 프로젝트 구성)

 

Java Code 만으로 화면을 구성하는 방법을 알아보도록 한다.

 

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(getApplicationContext(),"코드로 생성한 버튼입니다.", Toast.LENGTH_SHORT).show();
            }
        });

    }
}

 

 

연습 ) 다음 화면을 XML 파일 없이 Java Code 로 만들어보기

 

 

XML Code

 

public class MainActivity extends AppCompatActivity {

    EditText edit;
    TextView text;

    @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);
        setContentView(baseLayout, params);

        edit = new EditText(this);
        edit.setHint("여기를 입력하세요.");
        baseLayout.addView(edit);

        Button btn = new Button(this);
        btn.setText("버튼입니다");
        btn.setBackgroundColor(Color.YELLOW);
        baseLayout.addView(btn);

        text = new TextView(this);
        text.setTextColor(Color.MAGENTA);
        baseLayout.addView(text);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String s = edit.getText().toString();
                text.setText(s);
            }
        });

    }
}
Comments