Download presentation
Presentation is loading. Please wait.
Published byBrittney Greer Modified over 9 years ago
1
데이터 저장 & Fragment UNIT 28 로봇 SW 콘텐츠 교육원 조용수
2
데이터 저장 & Fragment SharedPreference 로 데이터 저장 Fragment 의 이해 2
3
SharedPreference App 에서 간단하게 데이터를 저장하기 위한 기능 해당 App 의 저장 공간에 File 로 저장 Key –Value 형태로 저장이 되며, App 을 삭제하기 전까지 유지됨 3
4
Preference 선언 4 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); … } public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final SharedPreferences preferences = getSharedPreferences(“Name”, MODE_PRIVATE); … }
5
Preference Write 5 public class MainActivity extends Activity { private TextView textView; private Button button; @Override 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() { @Override public void onClick(View v) { Editor editor = preferences.edit(); editor.clear(); editor.putString("data", "text"); editor.commit(); } }); }
6
Preference Read 6 public class MainActivity extends Activity { private TextView textView; private Button button; @Override 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); … }
7
Fragment Activity 내에서 재 사용 가능한 모듈 대형화 된 화면을 분할하여 사용하기에 적합 7
8
Fragment Life Cycle onAttach(Activity) 프래그먼트가 액티비티 레이아 웃에 포함되는 순간. onCreateView(LayoutInflater, ViewGroup, Bundle) 프래그먼트의 UI 를 구성하는 뷰 (View) 를 반환합니다. UI 를 가지지 않는 프래그먼트일 경우 null 을 반환할 수도 있습니다. onDestroyView() 프래그먼트가 화면에서 사라진 후, 뷰의 현재 상태가 저장된 후 호출됩니다. 여기 에서 저장된 뷰의 상태는 액티비티와 유사하게 Bundle 형태로 저장되며, 저장된 뷰의 상태는 onCreate() 및 onCreateView() 에서 다시 불러들 일 수 있습니다 8
9
안드로이드 지원 패키지 안드로이드 3.0 이후에 추가된 API 호환성을 위해 서 만들어진 라이브러리 Android.support.v4 –Fragment –ViewPager –ActionBar 신규 OS 의 기능을 계속 추가 따라서 호환성을 위해서는 가능하면 사용하는것이 바람직함. 9
10
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 { @Override 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; }
11
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 { @Override 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(); }
12
Fragment 변경 12 @Override 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; }
13
SmartRobot Interface 적용 13 public class MainActivity extends FragmentActivity implements SmartRobot.Callback, Device.DeviceDataChangedListener, OnClickListener { @Override protected void onStart() { super.onStart(); SmartRobot.activate(getApplicationContext(), this); } @Override protected void onStop() { super.onStop(); SmartRobot.deactivate(); } /** * {@inheritDoc} */ @Override public void onInitialized(Robot robot) { robot.addDeviceDataChangedListener(this); }
14
Fragment 변경 14 public class FirstFragment extends Fragment implements ControllerCallBack{ ControllerView controllerView; MainActivity activity; @Override 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; } @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); this.activity = (MainActivity)activity; } @Override 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); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.