-
[6] Intent, Handler, ExitDevelpment/Android Sample Source 2020. 9. 13. 21:38
1. Intent
Sample Source
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package com.ssh.user.ex_1206;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;public class IntentMainActivity extends AppCompatActivity {Button btn_next, btn_link;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_intent_main);btn_next = (Button)findViewById(R.id.btn_next); // activity 이동btn_link = (Button)findViewById(R.id.btn_link); // web_linkbtn_link.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//웹 페이지로 화면 전환하기.//안드로이드 화면 전환 기능을 담당하는 Intent클래스Intent i = new Intent( Intent.ACTION_VIEW );i.setData(Uri.parse("http://www.naver.com"));startActivity(i); // Intent의 정보를 가지고 화면 전환}});btn_next.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {// 1. 생성하면서 바로 설정// Intent i = new Intent(IntentMainActivity.this, IntentSubActivity.class);// 2. 나중에 설정Intent i = new Intent();// 이동하고자 하는 activity를 명시한다.// 단, 이동하고자 하는 클래스는 Manifest에 등록되어 있어야 한다.i.setClass(IntentMainActivity.this, IntentSubActivity.class);startActivity(i); // 화면전환}});}//onCreate()}cs 123456789101112131415161718192021222324252627<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_intent_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.ssh.user.ex_1206.IntentMainActivity"android:orientation="vertical"><Buttonandroid:id="@+id/btn_next"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="next" /><Buttonandroid:id="@+id/btn_link"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="web"/></LinearLayout>cs 1234567891011121314151617181920212223242526272829303132333435package com.ssh.user.ex_1206;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;public class IntentSubActivity extends AppCompatActivity {Button btn_pre;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_intent_sub);btn_pre = (Button)findViewById(R.id.btn_pre);btn_pre.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent i = new Intent(IntentSubActivity.this, IntentMainActivity.class);//intent에게 중복 호출 방지를 위한 Flag 적용(현재창 닫기|맨위중복 방지)i.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);startActivity(i);}});}}cs 1234567891011121314151617181920<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_intent_sub"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.ssh.user.ex_1206.IntentSubActivity"><Buttonandroid:id="@+id/btn_pre"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="previous"/></RelativeLayout>cs 2. Handler
Sample Source
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657package com.ssh.user.ex_1206;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.TextView;public class HandlerActivity extends AppCompatActivity {TextView txt_count;Button btn_start, btn_stop;int count;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_handler);txt_count = (TextView)findViewById(R.id.txt_count);btn_start = (Button)findViewById(R.id.btn_start);btn_stop = (Button)findViewById(R.id.btn_stop);btn_start.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//핸들러 호출(java의 Thread와 비슷)handler.sendEmptyMessage(0);}});btn_stop.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//핸들러 정지handler.removeMessages(0);}});}//onCreate//핸들러Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {// 1000 ms 이후 자신을 호출handler.sendEmptyMessageDelayed(0,1000);count++;txt_count.setText(""+count);}};}cs 1234567891011121314151617181920212223242526272829303132333435363738<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_handler"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.ssh.user.ex_1206.HandlerActivity"android:orientation="vertical"><TextViewandroid:id="@+id/txt_count"android:layout_width="match_parent"android:layout_height="match_parent"android:text="0"android:textSize="30dp"android:layout_weight="1"android:gravity="center" /><Buttonandroid:id="@+id/btn_start"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="start"/><Buttonandroid:id="@+id/btn_stop"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="stop"/></LinearLayout>cs 3. Exit
Sample Source
12345678910111213141516171819202122232425262728293031323334353637383940414243444546package com.ssh.user.ex_1206;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;public class ExitActivity extends AppCompatActivity {int timeCount = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_exit);}@Overridepublic void onBackPressed() {if(timeCount == 0) {handler.sendEmptyMessage(0);Toast.makeText(getApplicationContext(), "한번더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();}elsefinish();}Handler handler = new Handler(){@Overridepublic void handleMessage(Message msg) {handler.sendEmptyMessageDelayed(0, 1000);timeCount++;if(timeCount >= 3) {timeCount = 0;handler.removeMessages(0);}}};}cs 'Develpment > Android Sample Source' 카테고리의 다른 글
[7] SharedPreferences, Tutorial, Canvas 1,2 (0) 2020.09.13 [5] Button Effective, Menu, AlertDialog, Dialog, Menu Dialog, Rating (0) 2020.09.13 [4] List View, Custom Button (0) 2020.09.13 [3] TouchEvent, Inflater (0) 2020.09.13 [2] Life Cycle, Event (0) 2020.09.13