Android28 Android Studio , 화면 회전 시 처리 화면 회전 layout-port : 세로 화면 , layout-land : 가로 화면 UI Mode main.xml 를 layout land로 복붙 //화면 회전이 발생되면 호출되는 함수 @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); //번들 outState 값이 onCreate의 파라메타(savedInstanceState)로 전달 outState.putString("data1", textView.getText().toString()); } @Override protected void onCreate(Bundle savedInstanceState) { super.. 2020. 8. 17. Android Studio , 파일 저장 읽기, 내부 저장소 / 외부 저장소 저장소 내부 저장소 : 애플리케이션을 통해서만 접근 가능 외부 저장소 : 단말기 내부 공유 영역, 컴퓨터와 연결하면 탐색을 통해 접근 가능 1 내부 저장소 //내부 저장소와 연결되어 있는 쓰기 스트림 추출 //MODE_PRIVATE 파일 덮어쓰기 , MODE_APPEND 파일 새로 쓰기 FileOutputStream fos = openFileOutput("myFile.dat",MODE_PRIVATE); DataOutputStream dos = new DataOutputStream(fos); //데이터를 쓴다. dos.writeInt(100); dos.writeUTF("문자열"); dos.flush(); dos.close(); FileInputStream fis = openFileInput("myFile... 2020. 8. 11. Android Studio , ListFragment & DialogFragment Fragment 내에 ListView를 사용할 경우 보다 편리하게 구성할 수 있도록 제공되는 Fragment Listview의 id가 @android:id/list 로 설정되어 있을 경우 자동으로 ListView를 찾아 관리 ListFragment : ListView를 보다 쉽게 사용 (내 생각엔 한 화면에 짧게 리스트로 쓸 경우) ListView : 대량의 정보를 List로 화면에 띄울 경우 1. 2. public class SubFragment extends ListFragment { TextView text1; String[] list = {"항목1", "항목2","항목3"}; public SubFragment() { // Required empty public constructor } @Nulla.. 2020. 8. 7. Android Studio , Service & Intent Service & Forground Service Service 서비스 백그라운드 처리, 쓰레드와 다른 작업할 때 Activity는 화면을 가지고 있어 화면이 보이는 동안 동작 안드로이드 7버전은 서비스 액티비티(어플) 종료시 다시 쓰레드 동작 , 8이후는 종료 New -> serivce //쓰레드 추가 가능 //서비스가 가동될 때 호출되는 메서드 @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } //서비스가 중지되면 호출되는 메서드 @Override public void onDestroy() { super.onDestroy(); } serviceIntent = new .. 2020. 8. 5. Android Studio , Intent 로 객체 전달하기, Parcelable 세컨드 액티비티로 넘어갈때 인텐트로 값을 넘긴다. public class MainActivity extends AppCompatActivity { TextView text2; final int SECOND_ACTIVITY =1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text2 = findViewById(R.id.textView); } public void btnClicked(View view) //메인A -> 2A { Intent intent = new Intent(this, SecondActiv.. 2020. 7. 28. Android studio (안드로이드 스튜디오) SharedPreference 초기 설정값 저장, 간단한 데이터 저장 용이 / GSON SharedPreference 간단한 데이터 저장 용이 보통 초기값,초기 설정값 등을 저장하는 데에 사용 경로 : data/data/pakageName/shared_prefs/이름 GSON 사용시 객체 저장 가능 MODE_PRIVATE 해당앱만 MODE_WORLD_READABLE 다른 앱에서 읽기 가능 MODE_WORLD_WRITABLE 다른 앱에서 쓰기 가능 //sf에 데이터 저장 SharedPreferences sharedPreferences = getSharedPreferences(sfName,MODE_PRIVATE); //(이름, 모드) SharedPreferences.Editor editor = sharedPreferences.edit(); //변화줄때 editor.putString(sfKey,.. 2020. 3. 15. Android studio (안드로이드 스튜디오) Pager, TabLayout/ 페이저, 탭레이아웃 1. gradle implementation 'com.google.android.material:material:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' 2. PagerAdater.java / FragementOne.java , …Two.. (형성할 탭 개수만큼) 3. 프라그먼트에 맞는 xml 파일 (형성할 탭 개수만큼) viewPager = findViewById(R.id.view_layout); tabLayout = findViewById(R.id.tab_layout); //탭이름 설정 tabLayout.addTab(tabLayout.newTab().setText("프로필")); .. //어댑터 연결 PagerAdapter pagerAdap.. 2020. 3. 12. Android studio (안드로이드 스튜디오) RecyclerVIew , 클릭, 화면전환 - 응용편 Android studio (안드로이드 스튜디오) RecyclerVIew , 클릭ClickListener, 화면전환(intent) 앱에서 대량의 데이터 세트 또는 자주 변경되는 데이터에 기반한 요소의 스크롤 목록을 표시해야 할때 주로 리사이클러뷰가 사용된다. RecyclerView 는 ListView 보다 더 진보하고 유연해진 버전이다. 지원라이브러리 추가 dependencies { implementation 'com.android.support:recyclerview-v7:28.0.0' } 메니페스트에 추가 package com.example.recyclerview; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatA.. 2020. 3. 10. Android studio (안드로이드 스튜디오) RecyclerView 리사이클러뷰 , v7 , Jetpack (androidx) v7 지원 라이브러리 리사이클러뷰 예시 developer.android.com/guide/topics/ui/layout/recyclerview RecyclerView로 목록 만들기 | Android 개발자 | Android Developers RecyclerView를 사용하여 동적 콘텐츠의 목록과 그리드를 표시합니다. developer.android.com import java.util.ArrayList; public class MainActivity extends AppCompatActivity { public RecyclerView recyclerView; ArrayList itemList; @Override protected void onCreate(Bundle savedInstanceState) .. 2020. 3. 9. Android studio (안드로이드 스튜디오) 리스트뷰 아이템 체인지, ListView 클릭 notifyDataSetChanged : 데이터 변화를 갱신 LinearLayout cmdArea = (LinearLayout) view.findViewById(R.id.item_view_layout); cmdArea.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getItem(position).setCount(124); notifyDataSetChanged(); //데이터 변화 갱신 Toast.makeText(v.getContext(), "클릭 되었습니다.", Toast.LENGTH_SHORT).show(); } }); 2020. 3. 8. Android studio (안드로이드 스튜디오) AddView, inflater AddView layoutInflater 를 통해 layout을 그려주고 addview 함수를 통해 view를 추가해준다. Inflater - item을 해당 layout(xml)에 그리는 역할 Layout File - item 하나가 그려질 view Item list - 리스트 목록 Item - 리스트 목록의 하나 public class MainActivity extends AppCompatActivity { ArrayList arrayList; LayoutInflater layoutInflater; LinearLayout container; Context context; View view; @Override protected void onCreate(Bundle savedInstanceState) {.. 2020. 3. 1. Android studio (안드로이드 스튜디오) Library 라이브러리 추가하기 ex) Glide 글라이드 Library 라이브러리 추가하기 AndroidManifset.xml Gradle (원격 방식) 사용 방법: github 다운로드에서 코드 복사 붙이기 buildscript{ ... } dependencies{ .. complie à implementation } sync now 클릭 Glide Glide 사용 방식 // URL Glide.with(fragment).load("url").into(imageView); // Resource ID int resourceId = R.mipmap.ic_launcher; Glide.with(fragment).load(resourceId).into(i.. 2020. 2. 29. 이전 1 2 3 다음