Study/Android 8

Fragment

인텐트와 같이 창이 하나 더 생기는거 말고 부드럽게 넘어갔으면 좋겠다고 생각이 들어 Fragment를 사용해 보았다. Fragment는 하나의 FragmentActivity안에 여러개의 Fragment가 들어가 화면 전환을 부드럽게 해주는 도구(?)이다. 그림과 같이 액티비티 하나 안에 여러개의 화면이 들어간다고 생각하면 된다. 물론 보여지는건 Fragment하나씩만이다. Fragment의 Lifecycle은 onAttach - onCreate - onCreateView - onActivityCreated - onStart - onResume...등으로 이루어져 있다. Fragment또한 onCreate가 있기에 평소 Activity에 작업하던대로 여기에 작업을 하면 될거같지만 틀렸다. onCreate에..

Study/Android 2015.01.29

DB에서 데이터를 가져와서 게시판 읽는 어플 제작

내가 만든 홈페이지 게시판을 안드로이드에서 확인할 수 있게 만들어 보았다. 먼저 전에 해본 JSON형식으로 만든 데이터를 PHP를 통해 가져오고 이를 안드로이드에서 해석을 하였다. 일단 PHP가 갱신되었을때 즉, DB가 변동되었을 때, 이를 캐치해서 리스트뷰를 갱신하는것은 생각하지 않고 만들어 보았다. 그렇기에 일단 doInBackgroumd에서 데이터를 받아오고 onPostExecute에서 데이터를 해석하고 어뎁터에 데이터를 추가해주었다. 아래 코드는 onPostExecuted이다. 1234567891011121314151617181920212223242526protected void onPostExecute(String str) { try { JSONObject jObject = new JSONObj..

Study/Android 2015.01.29

MYSQL에서 안드로이드로 데이터 가져오기

안드로이드 내부 DB가 아닌 외부 DB를 사용할 필요가 있다. 난 MYSQL을 사용하였다. 게시판을 만들기 위해서 사용 할 DB이기 때문에 테이블 구성은 아래와 같이 하였다. 이를 사용할때 안드로이드와 MYSQL이 직접 통신하는 방법은 안드로이드 자체적으로 막혀있기 때문에 PHP를 이용해서 가져와야 한다. 즉 안드로이드 PHP MYSQL 이렇게 할수밖에 없다. MYSQL에서 PHP로의 연결은 PHP부분에서 다루겠다.(http://kostrian.tistory.com/18) 여기서 난 정규 표현식으로 JSON을 사용하였다. 이를 위해서 자바에서 JSONObject와 JSONArray를 사용하였다. 먼저 이 내용은 http://cholol.tistory.com/162 내용을 참고하였다. 12345678910..

Study/Android 2015.01.29

CheckBox & 갤러리 사진 선택

갤러리 사진 선택 갤러리에서 사진을 가져올땐 인텐트를 사용해야 한다. 다만 새로운 엑티비티를 만들어서 인텐트를 생성하는게 아니라 안드로이드 자체 내에 있는걸 사용한다.1234567Intent intent = new Intent(Intent.ACTION_PICK, MedaStore.Images.Media.EXTERNAL_CONNECT_URI);intent.setType("image/*");//Crop 기능 활성화intent.putExtra("crop", "true");intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());intent.putExtra("outputFormat", Bitmap.compressFormat.JPEG.toString());startActi..

Study/Android 2015.01.29

Intent & SQLite

Intent로 생성한 엑티비티에서 부모 엑티비티로의 데이터 전송은 거의 필수적이다. 따라서 이를 다뤄야 할필요가 있었다. 먼저 부모엑티비티에서 자식 엑티비티로의 데이터 전송은1234Intent intent = new Intent(getApplicationContext(), Child.class);intent.putExtra("Tag",Data);...startActivityForResult(intent, REQUIREMENT_CODE);cs 이렇게 하고 이제 자식 엑티비티에서 부모 엑티비티에서 보내준 데이터를 받기 위해서는 12345Intent intent = getItent(); var = intent.getExtras().get("Tag"); // ex) StringString var = intent..

Study/Android 2015.01.29

Custom ListView

Custum ListView를 구현하기 위해서는 Adaptor의 구현이 필요하다. listview_item.xml이라는 레이아웃을 만들어서 원하는 모양으로 보이게 만든다. Colored By Color Scripter™123456789101112131415 Colored By Color Scripter™123456789101112131415161718192021public class MainActivity extends Activity { private ListView listView; private Adapter adapter; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi..

Study/Android 2015.01.29

Simple ListView

이벤트 처리 외의 자바를 사용하지 않고 xml만 가지고 어플을 만든다는건 php나 js를 사용하지 않고 웹페이지를 만든다는거와 비슷하다. 리스트를 구현할때 자바의 도움을 받지 않고서는 제한된 리스트만을 만들수밖에 없다. 버튼이나 이미지 버튼을 제한된 수를 계속해서 넣는방법밖에는 없을텐데 이를 위해 ListView를 사용한다. 먼저 xml에서 를 만든다. 다음 자바에서 다음과 같은 코드를 작성한다. private ListView m_ListView;private ArrayAdapter m_Adapter; protected void onCreate(Bundle savedIntanceState) {...m_Adapter = new ArrayAdapter(getApplicationContext(), androi..

Study/Android 2015.01.29

onCreate & Event

onCreate() - 안드로이드 프로그램이 시작되었을때 실행되는 메서드로 주로 UI업데이트나 처음 세팅시 필요한 작업을 해준다. setContentView를 이용하여 사용할 레이아웃을 선언해 주고 위젯에 리스너를 달아주거나 하는 작업을 여기서 주로 한다. setContentView(Toolbar) - 이 메서드를 이용하여 현재 화면에 표시되는 레이아웃을 변경할수 있다. 즉 이 메서드를 사용함으로써 이 액티비티의 레이아웃을 선언함으로써 레이아웃의 위젯등에 리스너를 달거나 리스트뷰에 어뎁터를 달 수 있다. [이벤트 처리]매인 액티비티 클래스에 View.OnClickListener를 implements하여 onClick(View)를 작성하면 된다. 버튼에 이벤트를 입력하기 위해서는 Button b1;b1 =..

Study/Android 2015.01.29