Button 추가하기
앱의 레이아웃에 컴포넌트를 추가하기 위해선 Layout Editor를 사용하거나 xml파일에 직접 코드를 집어넣어 만들 수 도 있다.
Layout Editor 사용
xml 태그 사용
아까 버튼을 추가했던 design탭에서 옆에있는 text탭으로 들어가면 activity_main.xml의 코드가 보이게 되는데 우리가 레이아웃 에디터로 추가했던 버튼 코드가 보입니다. 그 코드 아래에 직접 아래의 코드를 집어 넣겠습니다.
-
Code
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClickButton2" android:text="전화 걸기" tools:layout_editor_absoluteX="120dp" tools:layout_editor_absoluteY="16dp" /> -
Result
다시 design탭으로 돌아가 보면 추가한 코드에 해당한 버튼이 레이아웃에 추가된 것을 볼 수 있습니다.
버튼에 기능 추가하기
이제 각 버튼을 클릭했을 때 동작할 기능을 구현해 보겠습니다.
MainActivity.java 파일을 열어 각 버튼을 클릭했을 때 실행될 메소드를 아래 코드와 같이 구현합니다.
-
Code
package com.dean92.ex1; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClickButton1(View view){ Intent myIntent=new Intent(Intent.ACTION_VIEW, Uri.parse("http://dean92.tistory.com")); startActivity(myIntent); } public void onClickButton2(View view){ Intent myIntent=new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-0000-0000")); startActivity(myIntent); } } -
Result
에뮬레이터로 앱을 실행시켜 보면 각 버튼이 동작하는 것을 볼 수 있습니다.
Activity 추가하기
Activity
Activity는 애플리케이션 구성 요소로서 앱 기능들이 상호작용할 수 있는 화면을 말합니다. 액티비티마다 창이 하나씩 주어지고 이곳에 원하는 기능들을 넣을 수 있습니다. 이 창은 일반적으로 기기의 화면을 가득 채우지만, 작은 창으로 만들어 다른 창 위에 띄울 수도 있습니다.
Activity 추가
SubActivity.java 파일을 열어 메인메뉴로 돌아가기 버튼을 클릭했을 때 실행될 메소드를 아래 코드와 같이 구현합니다.
-
Code
package com.dean92.ex1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class SubActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sub); } public void onClickButtonBack(View view) { //토스트 메세지를 띄움 Toast.makeText(getApplicationContext(),"메인화면으로 이동합니다.", Toast.LENGTH_LONG).show(); //현재 액티비티를 종료함 finish(); } } -
Code
package com.dean92.ex1; import android.content.Intent; import android.net.Uri; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClickButton1(View view){ Intent myIntent=new Intent(Intent.ACTION_VIEW, Uri.parse("http://dean92.tistory.com")); startActivity(myIntent); } public void onClickButton2(View view){ Intent myIntent=new Intent(Intent.ACTION_VIEW, Uri.parse("tel:010-0000-0000")); startActivity(myIntent); } public void onClickButton3(View view){ Intent intent = new Intent(getApplicationContext(), SubActivity.class); startActivity(intent); } } -
Result
에뮬레이터로 앱을 실행시켜 보면 각 버튼이 동작하는 것을 볼 수 있습니다.
그리고 메인액티비티에 서브액티비티로 진입할 버튼을 하나더 추가한 후 java파일에 그 버튼을 클릭했을 때 서브액티비티로 진입할 수 있도록 코딩합니다.