데이터 저장 & Fragment UNIT 28 로봇 SW 콘텐츠 교육원 조용수. 데이터 저장 & Fragment SharedPreference 로 데이터 저장 Fragment 의 이해 2.

Slides:



Advertisements
Similar presentations
Cosc 4730 Android TabActivity and ListView. TabActivity A TabActivity allows for multiple “tabs”. – Each Tab is it’s own activity and the “root” activity.
Advertisements

Data Storage: Part 1 (Preferences)
Getting Started with Android APIs Ivan Wong. Motivation - “Datasheet” - Recently exposed to what’s available in Android - So let’s see what API’s are.
ANDROID UI – FRAGMENTS. Fragment  An activity is a container for views  When you have a larger screen device than a phone –like a tablet it can look.
Package org.androidtown.database.query; import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;
Mobile Programming Lecture 6
로봇 모니터링 2/2 UNIT 21 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Broadcasting Service 2.
로봇 전화번호부 4/4 UNIT 12 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 뷰 홀더 패턴을 사용할 수 있다. 토스트를 사용할 수 있다. 클릭 이벤트를 처리할 수 있다. 2.
1/29/ Android Programming: FrameLayout By Dr. Ramji M. Makwana Professor and Head, Computer Engineering Department A.D. Patel.
Android Programming-Activity Lecture 4. Activity Inside java folder Public class MainActivity extends ActionBarActivity(Ctrl + Click will give you the.
Android Dialog Boxes AlertDialog - Toast
Create Navigation Drawer Team 2 Zhong Wang Jiaming Dong Philip Wu Lingduo Kong.
Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml.
로봇을 조종하자 3/4 UNIT 17 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 스마트 폰의 센서를 사용할 수 있다. 2.
Android – Fragments L. Grewe.
Import import android.graphics.Bitmap; import android.widget.ImageView;
로봇 모션 편집기 4/4 UNIT 25 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 에디트 텍스트를 사용할 수 있다. 아이템을 삭제할 수 있다. 아이템을 편집할 수 있다. 2.
Cosc 4730 Android Fragments. Fragments You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own.
로봇 모니터링 1/2 UNIT 20 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Message Queue Handler 2.
Activity 생명주기 UNIT 13 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Logcat 액티비티 생명주기를 설명할 수 있다. 현재 상태를 저장할 수 있다. 2.
Custom Widget 1 UNIT 26 로봇 SW 콘텐츠 교육원 조용수. 캔버스 public void drawColor(int color) 2 public class ControllerView extends View { public ControllerView(Context.
Android Boot Camp Demo Application – Part 1. Development Environment Set Up Download and install Java Development Kit (JDK) Download and unzip Android.
Mobile Programming Lecture 7 Dialogs, Menus, and SharedPreferences.
네트워크 전송 1/2 UNIT 29 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Android Network 통신 2.
Android: “Dynamic” data and Preferences data.
Android Application Lifecycle and Menus
로봇을 조종하자 4/4 UNIT 18 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Intent Activity 호출 2.
로봇을 조종하자 1/5 UNIT 14 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 터치 이벤트를 처리할 수 있다. 2.
Custom Widget 2 UNIT 27 로봇 SW 콘텐츠 교육원 조용수. 학습 목표 Custom Widget –Canvas 를 이용하여 Custom Widget 을 만든다. 2.
CHAP 14. 프로세스와 스레드. © 2012 생능출판사 All rights reserved 다중 스레딩 하나의 애플리케이션이 동시에 여러 가지 작업을 하 는 것 이들 작업은 스레드 (thread) 라고 불린다.
創造工学設計 I 電子情報工学科4年(前期) 9 回目 ( 18/6/2015) 担当 古山彰一
User Interface Layout Interaction. EventsEvent Handlers/Listeners Interacting with a user.
Android Alert Dialog. Alert Dialog Place Button to open the dialog. public class MainActivity extends ActionBarActivity { private static Button button_sbm;
Google map v2.
Android 基本 I/O. 基本 I/O 介面元件 在此節中主要介紹常見的 I/O 使用者介 面元件 – Button, TextView, 以及 EditText , 學習者可以學會: – Android 的視窗表單設計 res/layout/main.xml – Android SDK –
Lecture 5: Location Topics: Google Play Services, Location API Date: Feb 16, 2016.
School of Engineering and Information and Communication Technology KIT305/KIT607 Mobile Application Development Android OS –Permissions (cont.), Fragments,
CMPE419 Mobile Application Development Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren
Introduction to android
Lab7 – Advanced.
Concurrency in Android
Activity and Fragment.
UNIT 11 로봇 전화번호부 3/4 로봇 SW 콘텐츠 교육원 조용수.
GUI Programming Fundamentals
Android – Event Handling
CS499 – Mobile Application Development
Android 16: Fragments: Tutorial
Android Widgets 1 7 August 2018
Android – Read/Write to External Storage
Picasso Revisted.
CIS 470 Mobile App Development
CIS 470 Mobile App Development
CIS 470 Mobile App Development
CIS 470 Mobile App Development
CMPE419 Mobile Application Development
UNIT 08 그림책 만들기 2/2 로봇 SW 콘텐츠 교육원 조용수.
BMI Android Application will take weight and height from the users to calculate Body Mass Index (BMI) with the information, whether user is underweight,
Activities and Intents
CIS 470 Mobile App Development
CIS 470 Mobile App Development
CIS 470 Mobile App Development
ארועים ומאזינים android.
Adding Components to Activity
CMPE419 Mobile Application Development
Activities and Fragments
Activities, Fragments, and Intents
Android Sensor Programming
Android Sensor Programming
CIS 694/EEC 693 Android Sensor Programming
User Interface Development
Presentation transcript:

데이터 저장 & Fragment UNIT 28 로봇 SW 콘텐츠 교육원 조용수

데이터 저장 & Fragment SharedPreference 로 데이터 저장 Fragment 의 이해 2

SharedPreference App 에서 간단하게 데이터를 저장하기 위한 기능 해당 App 의 저장 공간에 File 로 저장 Key –Value 형태로 저장이 되며, App 을 삭제하기 전까지 유지됨 3

Preference 선언 4 public class MainActivity extends Activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); … } public class MainActivity extends Activity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final SharedPreferences preferences = getSharedPreferences(“Name”, MODE_PRIVATE); … }

Preference Write 5 public class MainActivity extends Activity { private TextView textView; private Button protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); textView = (TextView)findViewById(R.id.text); button = (Button)findViewById(R.id.button); button.setOnClickListener(new OnClickListener() public void onClick(View v) { Editor editor = preferences.edit(); editor.clear(); editor.putString("data", "text"); editor.commit(); } }); }

Preference Read 6 public class MainActivity extends Activity { private TextView textView; private Button protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView)findViewById(R.id.text); button = (Button)findViewById(R.id.button); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); String text = preferences.getString("data", null); textView.setText(text); … }

Fragment Activity 내에서 재 사용 가능한 모듈 대형화 된 화면을 분할하여 사용하기에 적합 7

Fragment Life Cycle onAttach(Activity) 프래그먼트가 액티비티 레이아 웃에 포함되는 순간. onCreateView(LayoutInflater, ViewGroup, Bundle) 프래그먼트의 UI 를 구성하는 뷰 (View) 를 반환합니다. UI 를 가지지 않는 프래그먼트일 경우 null 을 반환할 수도 있습니다. onDestroyView() 프래그먼트가 화면에서 사라진 후, 뷰의 현재 상태가 저장된 후 호출됩니다. 여기 에서 저장된 뷰의 상태는 액티비티와 유사하게 Bundle 형태로 저장되며, 저장된 뷰의 상태는 onCreate() 및 onCreateView() 에서 다시 불러들 일 수 있습니다 8

안드로이드 지원 패키지 안드로이드 3.0 이후에 추가된 API 호환성을 위해 서 만들어진 라이브러리 Android.support.v4 –Fragment –ViewPager –ActionBar 신규 OS 의 기능을 계속 추가 따라서 호환성을 위해서는 가능하면 사용하는것이 바람직함. 9

Fragment Class 10 import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class SecondFragment extends Fragment public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View v = inflater.inflate(R.layout.fragment_02, container, false); return v; }

Main Activity 11 import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends FragmentActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(savedInstanceState == null){ FirstFragment first = new FirstFragment(); getSupportFragmentManager().beginTransaction().add(R.id.container, first).commit(); }

Fragment 변경 public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.button1: FirstFragment first = new FirstFragment(); getSupportFragmentManager().beginTransaction().replace(R.id.container, first).commit(); break; case R.id.button2: SecondFragment second = new SecondFragment(); getSupportFragmentManager().beginTransaction().replace(R.id.container, second).commit(); break; }

SmartRobot Interface 적용 13 public class MainActivity extends FragmentActivity implements SmartRobot.Callback, Device.DeviceDataChangedListener, OnClickListener protected void onStart() { super.onStart(); SmartRobot.activate(getApplicationContext(), this); protected void onStop() { super.onStop(); SmartRobot.deactivate(); } /** * public void onInitialized(Robot robot) { robot.addDeviceDataChangedListener(this); }

Fragment 변경 14 public class FirstFragment extends Fragment implements ControllerCallBack{ ControllerView controllerView; MainActivity public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View v = inflater.inflate(R.layout.fragment_01, container, false); controllerView = (ControllerView)v.findViewById(R.id.conroller); controllerView.setCallback(this); return v; public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); this.activity = (MainActivity)activity; public void ChangeControllerPosition(int xOffset, int yOffset) { // TODO Auto-generated method stub int rSpeed = 0; int fSpeed = 0; if(Math.abs(xOffset/10) > 10) { rSpeed = (int)(xOffset/10); } if(Math.abs(yOffset/10) > 10) { fSpeed = (int)(yOffset/10); } activity.leftWheel.write(fSpeed + rSpeed); activity.rightWheel.write(fSpeed - rSpeed); }