반응형
타진
개발 그라운드
타진
전체 방문자
오늘
어제
  • 분류 전체보기 (136)
    • 프로그래밍 (65)
      • Java (28)
      • Android (1)
      • Web (19)
      • Web-Spring (12)
      • R (5)
      • Angular (0)
    • 운영체제 (17)
      • Linux (14)
      • Docker(vmware) (3)
    • 클라우드 (4)
      • aws (0)
      • aws_handson (4)
    • 개발문제해결 (25)
      • Exception (12)
      • 알고리즘 문제풀이 (13)
    • 그 외 개발관련 (23)
    • 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 빠른 시작 끄기
  • ubuntu terminal
  • wsl2
  • docker desktop
  • cfn
  • 정올알고리즘 정올 알고리즘
  • github
  • 키보드매핑
  • vmmem
  • 빠른 시작 켜기
  • Github CLI
  • transit gateway peering
  • GIT
  • wsl_update_x64
  • 크로미움 엣지
  • docker ps
  • transit_gateway
  • jdk14
  • 라이젠
  • alt tab
  • angular cli
  • docker
  • handson
  • AWS
  • chromium edge
  • 4700u
  • 문법 체크
  • 일어키보드
  • github actions
  • stackset

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
타진

개발 그라운드

안드로이드 복습 1 - Text와 Button 띄우기
프로그래밍/Android

안드로이드 복습 1 - Text와 Button 띄우기

2017. 11. 17. 11:58
반응형



안드로이드 배운 자료를 


처음부터 복습하려는 마인드로 진행하려고 한다.


내가 보기 편하게 작성할 생각으로 진행할 것이니 아마 다른사람도 보기 쉬울 것이라 생각한다.

웹은 중간부터 적기 시작해서 처음보는 사람들은 좀 힘들 것이라 생각했는데

안드로이드의 경우 무리 없이 따라할 수 있을 것이라 생각한다.


안드로이드 스튜디오 설치 및 환경 설정의 경우 다른 게시물이 많으니 생략한다

그리고 나는 자바언어로 진행할 것이다.




먼저 설치와 세팅을 끝냈으면 이런 페이지일 것이다.


프로젝트를 생성하자.










어플리케이션 이름은 앱의 이름을 의미한다.


적당히 지우주자.


근데 3에서 보이듯이 공백이 들어간게 안되는 건 아니지만


개발 도구에 문제를 일이킬 수도 있으니 공백은 되도록 빼는게 좋다.


2는 프로젝트 경로를 말한다.


적당히 설정해주자


컴페니 도메인은 우리는 연습 겸 해서 만드는 거니 신경 안써도 된다.

적당히 써주자

(경로에 들어가기는 하니 욕을 쓰거나 하지는 말자) 


c++이나 코틀린을 사용할거면 체크하라고 하는데 

코틀린이나 c++을 사용할 수 있으면 체크하자

난 못한다 ㅠ


다음 넥스트












안드로이드 폰과 타블렛의 개발 적용 모델을 설정하는 곳이다.


여러가지 바꾸어 보면 알겠지만


바꿀 때마다 밑의 % 숫자가 바뀐다.


이는 전세계의 폰의 적용 앱을 의미하는 곳이다.


너무 최신폰을 선택한다면 다양한 기능을 제작할 수 있겠지만

적용대상이 한정된다 

(최신폰을 출시되자마자 곧이곧대로 구매할 수 있는 구매력을 가진 나리는 생각보다 적다)


그렇다고 너무 예전 모델을 대상으로 앱을 제작한다면

사용할 수 있는 개발 도구가 적어 앱 제작에 에러가 발생할 수 있다.


때문에 나는 적당한 타협을 봐서 롤리팝 모델을 대상으로 설정할 것이다.


본인의 선택에 따라 골라주도록 하자









앱이 제공해주는 테마다.


어차피 다른 테마 줘봤자 해석하는데 시간만 걸리고

리마인드용으로 적합하지 않다


Empty 클릭









우리가 처음 프로젝트를 생성하면


앱의 메인화면과 메인 레이아웃을 자동으로 생성해준다


그 이름을 설정하는 곳이다.


나는 그냥 디폴트로 생성한다.  finish






나는 이미 만들어진 프로젝트를 가지고

정리하는 것이기에 따라하는 사람들과는 좀 차이가 있을 수 있다.

그래도 처음보는 사람들도 이해할 수 있을만하게 적을 것이다.


이렇게 생성된 프로젝트의 디렉토리를 살펴보면


처음 생성한 사람들과 다를 수 있는데 기본적으로

메니페스트와, 메인 액티비티, 레이아웃이 있을 것이다.


메니페스트는 앱의 환경설정을 코딩하는 곳이다.

우리가 지금 신경쓸 필요는 없다.


메인 엑티비티는 앱의 메인 화면의 코딩을 하는 곳이다.

레이아웃은 그 화면에 띄울 개체를 디자인 하는 곳이라고 생각하면 된다.






레이아웃은 이런 형식으로 되어있다.



먼저 간단하게 텍스트 창을 끌어서 한번 넣어보자



오른쪽에 precview를 선택하면


view의 설정이 나온다


거기서 텍스트를 클릭한 후


텍스트 뷰를 끌어 화면에 띄어줘보자








내 경우 이런식으로 텍스트도 하고 버튼도 끌어봤다.


나는 제약조건이 ConstraintLayout로 되어있다.


제약조건에 대한 설명은 나중에 진행할 것이다.


일단 나와 같은 화면을 띄우고 싶다면







저기 저 빨간 부분을 전부 지우고


constr 이런식으로 쳐보자


아마 안드로이드 스튜디오가 자동완성을 시켜줄 것이다


엔터를 누르면 개체들끼리 제약조건을 설정하라는 의미에서


레이아웃 이곳저곳에 빨간줄이 죽죽 그어질 것이다.


레이아웃의 제약조건은 




이런식으로 끌어서 사용하면 된다.

(마우스가 안보여서 그런데 저게 끌어서 붙인거다)


위 아래 양옆을 화살표로 끌어서

화면 벽 또는 다른 개체들의 위아래양옆과 붙여준다


그러면 그 개체와 맞추어 위치가 정렬 될 것이다.


개체들의 상호위치가 적당히 맞는 안에서 움직일 수 있다.


개체들을 처음 생성했다면


그냥 textview1 이런식으로 설정되어 있을 것이다. 그 부분을 바꾸기 위해서는



 

텍스트뷰 부분의 속성중

텍스트를 바꾸면 바로 적용된다.


보통 hello, android를 작성하나

진부하고, 밋밋하니 hell로 가자


그리고 파랗게 밑줄 친 id 부분은 아마 새로만든 사람은 없을 것이다.

속성부분에 id라고 작성하면 자동완성 될테니

똑같이 text1, text2 라고 적어주자


그리고! 화면에는 안보이지만 버튼도

같은 방식으로 id를 주자!


<Button
android:id="@+id/button"

이렇게 주면 된다!


그럼 레이아웃이 나랑 똑같은 화면일 것이다





다음은 메인액티비티로 가보자

(레이아웃이 아닌 메인액티비티 자바 파일)


첫 코딩은 따라하는 사람이 적응하기에 시간이 걸릴 수 있으니

처음부터 작성하도록 하겠다.


public class MainActivity extends AppCompatActivity {

TextView text1;
TextView text2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}
}

아마 시작하면 이런식으로 작성 되어 있을 것이다.

(텍스트뷰는 없을 것이다, 내가 적었다. 따라는 사람들도 적어주도록 하자)


oncreate는 나중에 생명주기를 다룰 때 설명하도록 한다.


우리가 할 것은 텍스트뷰 1에 적힌 텍스트 파일을

2로 옮겨줄 것이다.



먼저 onCreate 안에서

레이아웃에 설정된 text1을 개체를 찾아야 한다.


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

text1 = (TextView)findViewById(R.id.text1);
text2 = (TextView)findViewById(R.id.text2);
}


이런 식으로 찾아주자

findViewById는 개체의 아이디를 찾아서

textview에 저장해주는 기능을 하는 메소드이다.



우리가 텍스트뷰를 생성할 때

이전에 생성한 레이아웃에 설정한 id를 잡아서 찾아주는 역할을 한다.


이렇게 되면 text1과 text2가 레이아웃의 텍스트뷰와 연결된다!


하지만 연결만 됬지 아모 기능도 없기에


우리가 기능을 추가해줄 것이다.


다시 레이아웃으로 돌아와 버튼 객체의 레이아웃 코딩을 함 봐보자



그리고 id 밑에 엔터를 치고

oncli 이라고 써보자 자동완성을 시켜줄 것이다

엔터를 누르고


convert 라고 일단 입력한다


android:onClick="convert"

이렇게 말이다.


그러면 convert 밑에 빨간줄이 그어질 것이다.



alt enter를 누르면


이런식으로 나오게 된다.


온클릭 핸들러를 만든다에서 엔터 클릭


그러면 화면이 이동하면서


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

text1 = (TextView)findViewById(R.id.text1);
text2 = (TextView)findViewById(R.id.text2);
}


public void convert(View view) {
}
}


온크리에이트 밑에 이런 화면이 나올 것이다.


레이아웃의 버튼 속성에서

직접 클릭했을 때의 이벤트 이름을 부여하고

동작 방식을 코드로 기록하라고

안드로이드 스튜디오에서 자동으로 처리해 주는 것이다.


public void convert(View view) {

text2.setText(text1.getText().toString());

}

그리고 안에 이러한 코드를 따라쳐보도록 하자


안드로이드 스튜디오는 intellij idea를 기반으로 만들어진 IDE이기에

자동완성 기능이 겁나 강력하다.


쓰고 엔터만 툭툭 누르다보면 완성이니 그리 어렵지 않을 것이다.


저 코드의 해석은

 

text2 텍스트뷰에 

매개변수를 받아서

텍스트를 설정한다


그 텍스트의 내용은

text1의 내용을 받아서 String으로 타입을 변환한 것이다.


라는 내용이다.


자바 코드를 배운사람이라면 알겠지만

toString은 그냥 객체를 표현했을 때 나오는 주소값을

안의 텍스트로 변환해주는 메소드이다.


다끝났다


이렇게 하고 테스트를 해보자



위쪽 상단을 누르면


테스트 페이지가 나올 것이다.


처음하는 사람들은 파란색 버튼을 클릭하여 가상 디바이스를 하나 만들도록 하자

나랑 똑같이 할 필요는 없다. 편한 것으로 만들자


이게 컴퓨터 사양때문에 힘들다면 직접 자신의 안드로이드 폰을 디버깅모드로 설정하여

테스트할 수도 있다. 디버깅하는 방법은 검색하면 많이 나온다.


그리고 Ok



버튼 클릭 후



잘 작동한다.




이 간단한 앱을 작성하는데도 이렇게 많이 시간을 잡아먹는 걸 보니까

동영상을 찍든 뭔가 다른 방식을 찾아봐야겠다;




반응형
    타진
    타진
    vulnerable1324@gmail.com

    티스토리툴바