Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2017 수원 안드로이드 라이브러리 스터디 - 안드기초 4/4

2017 수원 안드로이드 라이브러리 스터디 - 안드기초 4/4

시간 : 2017.06.26 (월) 20시 ~ 22시 (2시간)
장소 : 수원역 유앤아이 스터디룸 O룸
참여자 : 7명

Avatar for jwk1014

jwk1014

June 27, 2017
Tweet

More Decks by jwk1014

Other Decks in Programming

Transcript

  1. 04 - Intent & Dialog & SQLite 새 액티비티 생성

    EmptyActivity झఋੌ۽ ࢤࢿ೧઱ࣁਃ.
  2. 04 - Intent & Dialog & SQLite 새 액티비티 생성

    SubActivityۄח ੉ܴਵ۽ ࢤࢿೞѷणפ׮.
  3. 04 - Intent & Dialog & SQLite activity_sub.xml SubActivityചݶ਷ о਍ؘ

    TextViewܳ فѷणפ׮. <?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:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.jwk.myapplication2.SubActivity">
 <TextView
 android:id="@+id/a_sub_textview"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerInParent="true"
 android:textSize="25sp"
 android:textStyle="bold"
 android:text="SubActivity"/>
 </RelativeLayout>
  4. 04 - Intent & Dialog & SQLite activity_main.xml <?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:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.jwk.myapplication2.MainActivity">
 
 <TextView
 android:id="@+id/a_main_textview"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerInParent="true"
 android:textSize="25sp"
 android:textStyle="bold"
 android:text="MainActivity"/>
 
 <Button
 android:id="@+id/a_main_button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_below="@+id/a_main_textview"
 android:layout_marginTop="15dp"
 android:text="Subঘ౭࠺౭ ڸ਋ӝ"/>
 
 </RelativeLayout> MainActivityചݶ਷ о਍ؘ TextViewܳ فҊ ߃ী SubActivityܳ ڸ਋ӝ ਤೠ ߡౡਸ ֍ѷणפ׮.
  5. 04 - Intent & Dialog & SQLite startActivity public class

    MainActivity extends AppCompatActivity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 
 }
 });
 }
 } ߡౡਸ ࠛ۞৬ࢲ OnClickListenerܳ োѾ೤פ׮.
  6. 04 - Intent & Dialog & SQLite startActivity Button button

    = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivity(intent);
 }
 }); onClick ೣࣻ উী ׮਺җ э੉ ॳݶ MainActivityചݶ ਤী SubActivityചݶਸ प೯೤פ׮.
  7. 04 - Intent & Dialog & SQLite startActivity Button button

    = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivity(intent);
 MainActivity.this.finish();
 }
 }); ਤ৬ э੉ ೞݶ SubActivityח प೯ೞҊ MainActivityח ઙܐؾפ׮.
  8. 04 - Intent & Dialog & SQLite Activity Back Stack

    ঘ౭࠺౭ח प೯ؼ ٸ ݃׮ ٍ۽ ऀѹ૓ Activityח Back Stackী ׸ѹ૘פ׮. ࢎ૓ ୹୊ : Android Developer ҕध ࢎ੉౟ Guide ઺ ‘੘স ߂ ߔ झఖ’ https://developer.android.com/guide/components/tasks-and-back-stack.html?hl=ko
  9. 04 - Intent & Dialog & SQLite flag Activityܳ ఋѶਵ۽

    प೯ द flagܳ ࢎਊೞݶ Back Stackਸ ੉ਊೠ ೯زਸ ਃ୒ೡ ࣻ ੓णפ׮. Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
 
 startActivity(intent);
 }
 });
  10. 04 - Intent & Dialog & SQLite flag ખ ؊

    ੗ࣁೠ ղਊ਷ Android Developer ࢎ੉౟ ژח ࢎ૓੄ ୹୊ੋ http://theeye.pe.kr/archives/1298 Ӗҗ ੋఠ֔ী ݆਷ Ӗҗ ৘ઁо ੓णפ׮.
  11. 04 - Intent & Dialog & SQLite putExtra putExtraೣࣻܳ ࢎਊೞݶ

    ః,ч ഋधਵ۽ प೯ೞ۰ח Activityীѱ чਸ ੹׳ ೡ ࣻ ੓णפ׮. Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 
 intent.putExtra("number1",3);
 
 startActivity(intent);
 }
 });
  12. 04 - Intent & Dialog & SQLite putExtra putExtra۽ ࠁյ

    ࣻ ੓ח ઙܨח ইې৬ эणפ׮. byte, byte[] boolean, boolean[] char, char[] short, short[] int, int[] long, long[] float, float[] double, double[] String, String[] CharSequence, CharSequence[] Parcelable, Parcelable[] Serializable Bundle ArrayList<Integer> ArrayList<? extends Parcelable> ArrayList<String>
  13. 04 - Intent & Dialog & SQLite getExtra ߉ח ଃ਷

    ਤ৬ э੉ ߉ਵݶ ؾפ׮. ٍী ं੗ 0਷ ইޖ чب য়૑ ঋওਸ ٸ defaultчਸ ૑੿ೠ Ѫੑפ׮. public class SubActivity extends AppCompatActivity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_sub);
 
 Intent intent = getIntent();
 int number1 = intent.getIntExtra("number1",0);
 Log.i("SubActibity","onCreate getIntExtra('number1') = "+number1);
 }
 }
  14. 04 - Intent & Dialog & SQLite startActivityForResult public class

    MainActivity extends AppCompatActivity {
 private final static int REQUEST_CODE_SUB_ACTIVITY = 1;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivityForResult(intent, REQUEST_CODE_SUB_ACTIVITY);
 }
 });
 }
 
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 Log.i("MainActivity","onActivityResult requestCode="+requestCode+" / resultCode="+resultCode);
 super.onActivityResult(requestCode, resultCode, data);
 }
 }
  15. 04 - Intent & Dialog & SQLite startActivityForResult public class

    SubActivity extends AppCompatActivity {
 public final static int RESULT_CODE_SUCC = 1;
 public final static int RESULT_CODE_FAIL = 2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_sub);
 
 TextView textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 setResult(RESULT_CODE_SUCC);
 SubActivity.this.finish();
 }
 });
 }
 
 @Override
 public void onBackPressed() {
 setResult(RESULT_CODE_FAIL);
 super.onBackPressed();
 }
 }
  16. 04 - Intent & Dialog & SQLite res / anim

    SFTউীBOJNಫ؊ٜܳ݅ӝਤ೧ਤ৬э੉ٮۄ೤פ׮
  17. 04 - Intent & Dialog & SQLite res / anim

    BOJNਸࢶఖറ0,ׂܳ۞઱ࣁਃ
  18. 04 - Intent & Dialog & SQLite res / anim

    ޷ܻઁҕػগפݫ੉࣌YNM౵ੌٜਸBOJNಫ؊ীࠢৈ֍णפ׮
  19. 04 - Intent & Dialog & SQLite overridePendingTransition Button button

    = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivityForResult(intent, REQUEST_CODE_SUB_ACTIVITY);
 overridePendingTransition(R.anim.right_in,R.anim.left_out);
 }
 });
  20. 04 - Intent & Dialog & SQLite 다른앱 Button button

    = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.daum.net"));
 startActivity(intent);
 }
 });
  21. 04 - Intent & Dialog & SQLite 다른앱 ҳӖ೒ۨ੉झషযप೯ Button

    button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.vending");
 startActivity(intent);
 }
 }); Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.chrome");
 startActivity(intent);
 }
 }); $ISPNFप೯
  22. 04 - Intent & Dialog & SQLite 다른앱 ҳӖ೒ۨ੉झషযীࢲౠ੿জಕ੉૑ৌӝ Button

    button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.kakao.talk"));
 startActivity(intent);
 }
 });
  23. 04 - Intent & Dialog & SQLite 시작하기 전 Android

    Developer 사이트 문제점 "OESPJE%FWFMPQFS(VJEF+BWBೠҴয
  24. 04 - Intent & Dialog & SQLite 시작하기 전 Android

    Developer 사이트 문제점 "OESPJE%FWFMPQFS(VJEF+BWB৔য
  25. 04 - Intent & Dialog & SQLite 시작하기 전 Android

    Developer 사이트 문제점 "OESPJE%FWFMPQFS(VJEF4VQQPSU-JCSBSZ৔য
  26. 04 - Intent & Dialog & SQLite Android Support Library

    ੿ܻೞ׮о਋ো൤ߊѼ೮חؘ4%,.BOBHFSউ੄"OESPJE4VQQPSU-JCSBSZীࢲ (PPHMF੗୓.BWFOSFQPTJUPSZ੄"OESPJE4VQQPSU-JCSBSZ۽؊਌ಞೞѱ੉ਊೞۄחѪэणפ׮
  27. 04 - Intent & Dialog & SQLite 시작하기 전 Android

    Developer 사이트 문제점 "OESPJE%FWFMPQFS(VJEFೠҴযࢎ੉౟۽оࠁפ(PPHMF੗୓.BWFOSFQPTJUPSZোѾߑߨ੉ উա৬੓णפ׮ೠҴযח৉दসؘ੉౟оוܽ
  28. 04 - Intent & Dialog & SQLite Android Support Library

    ઱ࣗӒ؀۽LPܳFOਵ۽৔য۽݅߄Լࢲ࢜۽Ҋஜೞפ߄۽ڰ֎ਃ CVJMEHSBEMF QSPKFDU ܳৌয઺рী੓חSFQPTJUPSJFT৔৉੄KDFOUFS ߃ী NBWFO\VSMtIUUQTNBWFOHPPHMFDPN^ਵ۽োѾೞݶؾפ׮
  29. 04 - Intent & Dialog & SQLite Lambda "OESPJE%FWFMPQFSীࢲח+BDLUPPMDIBJOߑध੄ۈ׮ܳࢎਊೞחѪਸݥ୶Ҋ "OESPJE4UVEJPߡ੹ীನೣؼDMBTTQBUIrDPNBOESPJEUPPMTCVJMEHSBEMFsਸ

    ࢎਊೞݶ؊જ਷ߑधਵ۽غחѪ݅୶ୌೞҊ੓णפ׮ पઁ୹दਊ݅ইפݶ+BDLUPPMDIBJOਸࢎਊೞৈۈ׮োण਷೧بغ޲۽ CVJMEHSBEMF NPEVMFBQQ ਸৌযӝઓҳઑীਤղਊਸ୶о೤פ׮
  30. 04 - Intent & Dialog & SQLite Lambda apply plugin:

    'com.android.application'
 
 android {
 compileSdkVersion 26
 buildToolsVersion "26.0.0"
 defaultConfig {
 applicationId "com.jwk.myapplication2"
 minSdkVersion 16
 targetSdkVersion 26
 versionCode 1
 versionName "1.0"
 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 jackOptions {
 enabled true
 }
 }
 compileOptions {
 sourceCompatibility JavaVersion.VERSION_1_8
 targetCompatibility JavaVersion.VERSION_1_8
 }
 buildTypes {
 release {
 minifyEnabled false
 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pr }
 }
 } ୶оೞݶਤ৬э਷ݽন੉ؾפ׮
  31. 04 - Intent & Dialog & SQLite Lambda ۈ׮ܳࢎਊೞݶੋఠಕ੉झܳOFX೧ࢲҳഅೞחߑधਸ ખ؊ૣѱࢎਊೡࣻ੓णפ׮

    Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View view) {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivityForResult(intent, REQUEST_CODE_SUB_ACTIVITY);
 overridePendingTransition(R.anim.right_in,R.anim.left_out);
 }
 }); Button button = (Button)findViewById(R.id.a_main_button);
 button.setOnClickListener( v -> {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivityForResult(intent, REQUEST_CODE_SUB_ACTIVITY);
 overridePendingTransition(R.anim.right_in,R.anim.left_out);
 });
  32. 04 - Intent & Dialog & SQLite Handler public class

    MainActivity extends AppCompatActivity {
 private Handler handler;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 handler = new Handler(Looper.getMainLooper());
 handler.postDelayed(new Runnable() {
 @Override
 public void run() {
 Intent intent = new Intent(MainActivity.this,SubActivity.class);
 startActivity(intent);
 }
 },3000);
 }
  33. 04 - Intent & Dialog & SQLite UI Thread दझమ਷

    ҳࢿ ਃࣗ੄ п ੋझఢझী ؀೧ ߹ب੄ झۨ٘ܳ ࢤࢿೞ૑ ঋणפ׮. э਷ ೐۽ࣁझীࢲ प೯غח ݽٚ ҳࢿ ਃࣗח UI झۨ٘ীࢲ द੘ؾפ׮. ౠ൤, ݽٚ Ѫ੉ UI झۨ٘ীࢲ ߊࢤೠ׮ݶ, ֎౟ਕ௼ ঘࣁझա ؘ੉ఠ ߬੉झ ௪ܻ ١੄ ӟ ੘সਸ ࣻ೯ೞݶ ੹୓ UIо ରױؾפ׮. झۨ٘о ରױغݶ ٘۽੔ ੉߮౟ܳ ನೣೞৈ ݽٚ ੉߮౟о ߊ࣠غ૑ ঋणפ׮. ࢎਊ੗о ࠁӝীח গ೒ܻா੉࣌੉ ઺ױػ Ѫ୊ۢ ࠁੑפ׮. ؊ աࢂ ҃਋, UI झۨ٘о ݻ ୡ ੉࢚ ରױغয ੓ਵݶ (അ੤ ড 5ୡ) ࢎਊ੗ীѱ ঈݺ ֫਷ "গ೒ܻா੉࣌੉ ਽׹ೞ૑ ঋणפ׮"(ANR) ؀ച࢚੗о ಴दؾפ׮. Android੄ ױੌ झۨ٘ ݽ؛ীח ف о૑ ױࣽೠ ӏ஗੉ ੓णפ׮. 1. UI झۨ٘ܳ ରױೞ૑ ݃ࣁਃ. 2. Ui झۨ٘ ৻ࠗীࢲ Android UI بҳ ః౟ী ঘࣁझೞ૑ ݃ࣁਃ.
  34. 04 - Intent & Dialog & SQLite AsyncTask ୐ߣ૩EP*O#BDL(SPVOEܳਤೠݒѐ߸ࣻఋੑ فߣ૩૓೯࢚ട੹׳द߸ࣻఋੑ

    ࣁߣ૩Ѿҗഋక߸ࣻఋੑ public class MyAsyncTask extends AsyncTask<Object,Integer,Long> {
 @Override
 protected void onPreExecute() {
 super.onPreExecute();
 }
 
 @Override
 protected Long doInBackground(Object... params) {
 return null;
 }
 
 @Override
 protected void onProgressUpdate(Integer... values) {
 super.onProgressUpdate(values);
 }
 
 @Override
 protected void onPostExecute(Long result) {
 super.onPostExecute(result);
 }
 } @Override
 public void onClick(View view) {
 MyAsyncTask myAsyncTask = new MyAsyncTask();
 myAsyncTask.execute(new Object[]{ new Object(), new Object() });
 }
  35. 04 - Intent & Dialog & SQLite supportedActionBar ਤ৬э੉ೞݶ࢚ױ߄੄ઁݾী಴दغחӖ੗ܳ߄Եࣻ੓णפ׮ public

    class SubActivity extends AppCompatActivity {
 public final static int RESULT_CODE_SUCC = 1;
 public final static int RESULT_CODE_FAIL = 2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_sub);
 
 ActionBar actionBar = getSupportActionBar();
 if(actionBar != null){
 actionBar.setTitle("ઁݾ֍ӝ");
 } }
  36. 04 - Intent & Dialog & SQLite supportedActionBar TFU%JTQMBZ)PNF"T6Q&OBCMFEೣࣻܳ୶оೞҊ PO0QUJPOT*UFN4FMFDUFEೣࣻܳ4VC"DUJJUZী୶о೤פ׮

    public class SubActivity extends AppCompatActivity {
 public final static int RESULT_CODE_SUCC = 1;
 public final static int RESULT_CODE_FAIL = 2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_sub);
 
 ActionBar actionBar = getSupportActionBar();
 if(actionBar != null){
 actionBar.setTitle("ઁݾ֍ӝ");
 actionBar.setDisplayHomeAsUpEnabled(true);
 } } @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 return super.onOptionsItemSelected(item);
 }
  37. 04 - Intent & Dialog & SQLite supportedActionBar ਤ৬э੉ೣࣻղਊਸ߸҃ೞৈ ࢚ױ߄੄ٍ۽оӝׂܳۥਸٸ3&46-5@$0%&@46$$оࢸ੿ػ଻۽ചݶ੉ઙܐغب۾೤פ׮

    @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()){
 case android.R.id.home:
 setResult(RESULT_CODE_SUCC);
 finish();
 return true;
 default:
 return super.onOptionsItemSelected(item);
 }
 }
  38. 04 - Intent & Dialog & SQLite AlertDialog 4VC"DUJWJUZ੄5FYU7JFX੄0O$MJDL-JTUFOFSܳ੉ਊೞৈ૓೯ೞѷणפ׮ public

    class SubActivity extends AppCompatActivity {
 public final static int RESULT_CODE_SUCC = 1;
 public final static int RESULT_CODE_FAIL = 2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_sub);
 
 ActionBar actionBar = getSupportActionBar();
 if(actionBar != null){
 actionBar.setTitle("ઁݾ֍ӝ");
 actionBar.setDisplayHomeAsUpEnabled(true);
 }
 
 TextView textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener( v -> {
 //TODO
 });
 }
  39. 04 - Intent & Dialog & SQLite AlertDialog ׮੉঴۽Ӓীই੉௑ ઁݾ

    ղਊ݅ࢸ੿ೠറڸ਋ח௏٘ੑפ׮ TextView textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener( v -> {
 AlertDialog alertDialog = new AlertDialog.Builder(SubActivity.this)
 .setTitle("׮੉঴۽Ӓઁݾ")
 .setIcon(R.mipmap.ic_launcher)
 .setMessage("׮੉঴۽Ӓղਊ")
 .create();
 alertDialog.show();
 });
  40. 04 - Intent & Dialog & SQLite AlertDialog TFU$BODFMBCMFೣࣻܳ੉ਊೞݶ ׮੉঴۽Ӓ߄Ӵਸ־ܰݶହ੉ײ൤ѱೡࣻ੓णפ׮

    TextView textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener( v -> {
 AlertDialog alertDialog = new AlertDialog.Builder(SubActivity.this)
 .setTitle("׮੉঴۽Ӓઁݾ")
 .setIcon(R.mipmap.ic_launcher)
 .setMessage("׮੉঴۽Ӓղਊ")
 .setCancelable(true)
 .create();
 alertDialog.show();
 });
  41. 04 - Intent & Dialog & SQLite AlertDialog 0O$BODFM-JTUFOFSܳࢸ੿ೞݶ߄Ӵਸ־ܰѢաஂࣗߡౡ ٍ۽оӝ١ਸ־ܲ

    ੉߮౟ܳх૑೧ਗೞחز੘ਸࣻ೯ೞѱೡࣻ੓णפ׮ TextView textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener( v -> {
 AlertDialog alertDialog = new AlertDialog.Builder(SubActivity.this)
 .setTitle("׮੉঴۽Ӓઁݾ")
 .setIcon(R.mipmap.ic_launcher)
 .setMessage("׮੉঴۽Ӓղਊ")
 .setCancelable(true)
 .setOnCancelListener(dialogInterface -> {
 Log.i("SubActivity","Dialog Cancel");
 })
 .create();
 alertDialog.show();
 });
  42. 04 - Intent & Dialog & SQLite AlertDialog 1PTJUJWF#VUUPOਸ୶оೞৈഛੋߡౡਸׂۥਸٸח׮ܲز੘ਸೞѱೡࣻب੓णפ׮ TextView

    textView = (TextView)findViewById(R.id.a_sub_textview);
 textView.setOnClickListener( v -> {
 AlertDialog alertDialog = new AlertDialog.Builder(SubActivity.this)
 .setTitle("׮੉঴۽Ӓઁݾ")
 .setIcon(R.mipmap.ic_launcher)
 .setMessage("׮੉঴۽Ӓղਊ")
 .setCancelable(true)
 .setOnCancelListener(dialogInterface -> {
 Log.i("SubActivity","Dialog Cancel");
 })
 .setPositiveButton("ഛੋ",(dialogInterface, i) -> {
 Log.i("SubActivity","Dialog Positive");
 })
 .create();
 alertDialog.show();
 });
  43. 04 - Intent & Dialog & SQLite SQLite 42-*UFఋੑ */5&(&3੿ࣻ

    CZUF  3&"-पࣻ 5&95ޙ੗ৌ #-0#߄੉ցܻ public class MySQLiteOpenHelper extends SQLiteOpenHelper {
 private final static String DB_NAME = "MYDB";
 private final static int DB_VERSION = 1;
 
 public MySQLiteOpenHelper(Context context){
 super(context,DB_NAME,null,DB_VERSION);
 }
 
 @Override
 public void onCreate(SQLiteDatabase sqLiteDatabase) {
 sqLiteDatabase.beginTransaction();
 sqLiteDatabase.execSQL(
 "create table Memo( " +
 "idx INTEGER PRIMARY KEY AUTOINCREMENT, " +
 "title TEXT, " +
 "content TEXT, " +
 "create_time INTEGER" +
 " )"
 );
 sqLiteDatabase.setTransactionSuccessful();
 sqLiteDatabase.endTransaction();
 }
 
 @Override
 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
 }
 }
  44. 04 - Intent & Dialog & SQLite SQLite public class

    Memo {
 private long idx;
 private String title;
 private String content;
 private Date date;
 
 public long getIdx() {
 return idx;
 }
 
 public void setIdx(long idx) {
 this.idx = idx;
 }
 
 public String getTitle() {
 return title;
 }
 
 public void setTitle(String title) {
 this.title = title;
 }
 
 public String getContent() {
 return content;
 }
 
 public void setContent(String content) {
 this.content = content;
 }
 
 public Date getDate() {
 return date;
 }
 
 public void setDate(Date date) {
 this.date = date;
 }
 }
  45. 04 - Intent & Dialog & SQLite SQLite public long

    insertMemo(Memo memo){
 SQLiteDatabase db = getWritableDatabase();
 SQLiteStatement stmt = db.compileStatement( "insert into Memo(title,content,create_time) value(?,?,?)");
 stmt.bindString(1,memo.getTitle());
 stmt.bindString(2,memo.getContent());
 stmt.bindLong(3, SystemClock.currentThreadTimeMillis());
 return stmt.executeInsert();
 }
  46. 04 - Intent & Dialog & SQLite SQLite public int

    updateMemo(Memo memo){
 SQLiteDatabase db = getWritableDatabase();
 SQLiteStatement stmt = db.compileStatement( “update Memo set title=?, content=? where idx=?");
 stmt.bindString(1,memo.getTitle());
 stmt.bindString(2,memo.getContent());
 stmt.bindLong(3, memo.getIdx());
 return stmt.executeUpdateDelete();
 }
  47. 04 - Intent & Dialog & SQLite SQLite public int

    deleteMemo(long idx){
 SQLiteDatabase db = getWritableDatabase();
 SQLiteStatement stmt = db.compileStatement("delete from Memo where idx=?");
 stmt.bindLong(1,idx);
 return stmt.executeUpdateDelete();
 }
 
 public int deleteMemo(Memo memo){
 return deleteMemo(memo.getIdx());
 }
  48. 04 - Intent & Dialog & SQLite SQLite public Memo

    getMemo(long idx){
 SQLiteDatabase db = getReadableDatabase();
 Cursor cursor = db.rawQuery( “select title,content,create_time from Memo where idx="+idx,null);
 Memo memo = null;
 if(cursor.moveToFirst()){
 memo = new Memo();
 memo.setIdx(idx);
 memo.setTitle(cursor.getString(0));
 memo.setContent(cursor.getString(1));
 memo.setDate(new Date(cursor.getLong(2)));
 }
 cursor.close();
 return memo;
 }
  49. 04 - Intent & Dialog & SQLite SQLite public List<Memo>

    getMemoList(int page,int page_size){
 SQLiteDatabase db = getReadableDatabase();
 int limit = (page-1)*page_size+1;
 Cursor cursor = db.rawQuery("select idx,title,create_time from Memo " +
 "order by create_time desc limit "+limit+" offset "+page_size,null);
 List<Memo> memos = null;
 if(cursor.moveToFirst()){
 memos = new ArrayList<>();
 do{
 Memo memo = new Memo();
 memo.setIdx(cursor.getLong(0));
 memo.setTitle(cursor.getString(1));
 memo.setDate(new Date(cursor.getLong(2)));
 memos.add(memo);
 }while(cursor.moveToNext());
 }
 cursor.close();
 return memos;
 }
  50. 04 - Intent & Dialog & SQLite 다음시간에는 %BHHFSח೧৻উ٘۽੉٘೐۽ં౟ীࢲ݆੉ࢎਊغח %FQFOEFODZ*OKFDUJPOۄ੉࠳۞ܻੑפ׮

    %BHHFS਷0LIUUQ 3FUSPGJU 1JDBTTP١ਬݺۄ੉࠳۞ܻܳࠁਬೞҊ উ٘۽੉٘੄੹ࢸA+BLF8IBSUPOA੉ࣗࣘػ4RVBSFഥࢎ੄೐۽ં౟ੑפ׮ (PPHMF੉%BHHFSਸਬब൤ࠁҊח%BHHFSܳઁ੘ೞ৓Ҋ %BHHFSٸࠁ׮഻ঁ݆਷ࢎਊ੗оࢤ҂णפ׮ %BHHFSIUUQTRVBSFHJUIVCJPEBHHFS %BHHFSIUUQTHPPHMFHJUIVCJPEBHHFS ࣻਃੌীחп੗%BHHFSী؀೧ઑࢎ೧য়Ҋযڃۄ੉࠳۞ܻҊ যڌѱࢎਊ೧ঠೞח૑ী؀ೠѐ֛੿ܻदрਵ۽ೞѷणפ׮