Context 역할
-어플리케이션에 관하여 시스템이 관리하고 있는 정보에 접근하기
-안드로이드 시스템서비스에서 제공하는 api를 호출 할 수 있는 기능
저번에 나이를 입력하는 예제를 만들었던 거에 추가해서
토스트를 띄우는 것과 체크박스를 체크하는 예제를 해보겠습니다.
일단 layout폴더에 있는 activity_main.xml에
저번에 쓴거 아래에 토스트를 띄울 버튼과 체크박스 2개를 추가해주세요.
<Buttonandroid:id="@+id/toast_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="토스트 띄우기" /><CheckBoxandroid:id="@+id/chk1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="체크박스1"/><CheckBoxandroid:id="@+id/chk2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="체크박스2"/>그리고 MainActivity.java 에 추가적으로 이벤트등을 등록해주세요.바뀐부분은 빨강으로 표시했습니다.설명은 주석으로 써놨습니다.package kr.mulcam.c902.hui.p0719;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {private EditText inputAge;private Button btn;private TextView result;private Button toastBtn;private CheckBox chk1;private CheckBox chk2;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Toast.makeText(getApplicationContext(), "이것이 토스트",1).show();// 토스트가 뜨도록 show로 보여주는 코드입니다.// this:토스트가 만들어질 컨텍스트 , 1:토스트가 떠있는 시간 길/짧 1/0inputAge = (EditText) findViewById(R.id.num);btn = (Button) findViewById(R.id.btn);result = (TextView) findViewById(R.id.age);toastBtn = (Button) findViewById(R.id.toast_btn);chk1 = (CheckBox) findViewById(R.id.chk1);chk2 = (CheckBox) findViewById(R.id.chk2);//id값들은 신중하게 잘 지어야됨 모든 xml파일에서 하나의 id 네임스페이스를 사용함btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString age = inputAge.getText().toString();result.setText("당신은 " + age + "살 이시군요");inputAge.setText("");}});toastBtn.setOnClickListener(new View.OnClickListener() {// OnClickListener를 사용해서 클릭할때마다 이벤트를 적용해줍니다.@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "토스트가 떠염", 1).show(); //이자리에 this:이벤트처리 (onClickListener객체 컨텍스트x)} //getApplicationContext() : 메인엑티비티가 멤버함수로 (상속받아서) 가지고 있는 저 함수를 불러서 컨텍스트 객체를 받아오던가}); //MainActivity.this 이벤트처리 객체를 가리키는 this가 아닌 엑티비티를 가리키는 thischk1.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubToast.makeText(MainActivity.this , buttonView.getText().toString()+"가 " + (isChecked ? "선택":"해제") +"되었습니다.", 0).show();if(isChecked){chk2.setChecked(false); // 이 코드는 체크박스 1개가 선택되면 다른 1개는 해제되게하는 코드입니다.}}});chk2.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubToast.makeText(MainActivity.this , buttonView.getText().toString()+"가 " + (isChecked ? "선택":"해제") +"되었습니다.", 0).show();if(isChecked){chk1.setChecked(false); // 이 코드도 체크박스 1개가 선택되면 다른 1개는 해제되게하는 코드입니다.}}});}}
위사진에서 볼수있듯이 버튼을 누르면 아래 토스트가 뜹니다!!
위에는 체크박스를 누를때마다 토스트가뜨는데..
컴퓨터가 너무느려서 체크박스2토스트가 뜨기전에 캡쳐를 했네요..
'Android' 카테고리의 다른 글
Android - layout (2) (0) | 2016.07.21 |
---|---|
Android - 05. Layout (0) | 2016.07.20 |
Android - 03. 액티비티 만들기 (0) | 2016.07.19 |
Android - 02. PC로 안드로이드어플 테스팅 ( Hello World! ) (0) | 2016.07.18 |
Android - 01. 안드로이드 개발환경 구축하기 (0) | 2016.07.18 |