반응형 프로젝트/Android5 ListView에 클릭리스너 달기 ListView에 클릭 리스너 다는건 크게 어렵지 않다. ListView listView = findViewById(R.id.listView);listView.setOnItemClickListener( new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView parent, View view, int position, long id) {// parent : 선택된 ItemView의 부모 == listView// view : 선택된 ItemView 자체// position : 선택된 ItemView의 position// listView.getItemAtPosition(int position) 등에 쓸 수 있다.// .. 2018. 9. 24. ListView의 Choice Mode ListView에는 SingleSelect 모드, MultiSelect 모드가 있다. 모드 설정 - listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); - listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); SingleSelect 모드에서는 GetSelectedItem을 쓰고MultiSelect 모드에서는 GetCheckedItemPositions()를 쓴다. SingleSelectMode - 할말이 없다. MultiSelectMode - GetCheckedItemPositions()의 반환형은 SparseBooleanArray()이고 디버그로 찍어서 보면 전체 아이템에 대해 선택됐는지 안됐는지 boolean값이 들.. 2018. 9. 24. Thread와 static 변수 알아야할 사실들 - 안드로이드는 클라이언트이므로 DB커넥션자원이 몇개면 충분하다. - 안드로이드에서 DB 커넥션할 때 기본은 AsyncTask, Thread생성이다. 왜냐? 자원이 딸리므로 DB가져오는데 시간이 걸리는데 DB가져오는걸 Main Thread(UI Thread)에서 진행하 면 화면이 먹통이 되니까. - 안드로이드에서는 JSP 서버할때처럼 커넥션풀에 백개씩 담아놓고 돌려쓰고 그러지 못한다.문제 - 이번 상황은 DB에서 그리드의 데이터를 가져오는 함수(쓰레드가 들어있다.)안에 static으로 선언된 DB커넥션 자원이 들어있어서 발생했다. 이번에 본 코드의 문제는 쓰레드안에서 스태틱 변수(DB커넥션자원)를 썼기 때문. 문제가 생긴 코드는 리스트뷰에서 선택된 아이템들(멀티 셀렉트 모드이다.)을 하나.. 2018. 9. 18. 자원재활용 contentView 이 View, Adapter 관계는 여기저기서 나온다.하나더 신경쓸점은 GetView 메서드의 contentView 매개변수안드로이드는 핸드폰에서 사용되는 앱이므로 자원이 컴퓨터에 비해 작다.그래서 자원을 아끼기 위한 기능이 기본으로 달려있는데 contentView가 그런것. 1. 리스트뷰는 현재 액정에 보여지는 ItemView만 메모리에 유지한다. (전체 데이터를 불러오는게 아님)2. 그리고 View, 화면에 보여지는 Component를 새로 만드는(new)건 꽤 무거운 일이다. contentView는 이 두가지 사실을 가지고 메모리를 효율적으로 쓰기 위해 화면에서 벗어난 ItemView를 가져와서 데이터만 바꿔끼워서 다시 보여주는 식으로 사용한다.이렇게 contentView로 재활용하는 방식도 여기저.. 2018. 9. 8. Android에서 SpreadGrid UI 만들기 Android에는 C#의 SpreadGrid(엑셀 Sheet)같은 뷰가 없다. 이를 대체할 수 있는 UI는 Grid와 Listhttps://www.digitalsurgeons.com/thoughts/creative/list-vs-grid-view-how-do-you-choose/ 보여줄 데이터의 한줄 한줄이 하나의 덩어리인 경우 ListView가 맞다.ListView를 만들때 구성요소는 크게 네가지다.1. ListView : 리스트 UI2. ListAdapter : 리스트 뷰와 ItemView를 연결해주는 역할3. ItemView : 리스트 한 칸의 UI4. Item : 데이터 흐름리스트 어댑터에 데이터를 등록하고, 리스트뷰에 리스트 어댑터를 장착한다.리스트뷰는 리스트 어댑터에 몇번째 위치(index)에.. 2018. 9. 8. 이전 1 다음 반응형