Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 부트스트랩 #bootstrap install #
- android #tip #timer #handler #sendmessagedelayed
- Apache #PHP #마리아DB #아파치
- procedure does not exist
- 안드로이드 #앱 아이콘 #앱 아이콘 커스텀하기 #앱 로고 만들기 #앱 아이콘 만들기 #android logo custom #android icon custom #android logo 만들기 #image asset #
- react #리액트 #프로젝트 초기세팅 #초기구현 #클린코드 #cleancode #node #react-node #vite #react 설치 #react 세팅 #쇼핑몰 #eslint 설정 #vite eslint #TailWindCSS란? #테일윈드적용 #TailWindCSS 적용
- mariadb #mysql
- my.ini위치 확인
- Module not found: Error: Can't resolve '@popperjs/core'
- 안드로이드 타이머 #타이머 #handler timer #android handler timer #countdowntimer
- Android #bottom navigation View #Bottom tab #FRAGMENT #JAVA #Material Design #안드로이드 프래그먼트 바텀 네비게이션 뷰 커스텀 #안드로이드 메뉴 아이콘 커스텀 #안드로이드 메뉴 #프래그먼트 메뉴 #fragment menu i
- nodejs #express #게시판 기능 구현
- 안드로이드 로그인 회원가입 기능 #안드로이드 php 로그인 #userValidate.php #android php 중복체그 #안드로이드 회원가입 id 중복체크 기능 #android login id check
- 터미널 #terminal #aws 인스턴스 접속
- 회원가입 구현 #java
- XAMPP #PHP #mysql #Android #연동
- 크롤링 #텍스트 크롤링 #파이썬 #구름IDE
- db 프로시저 권한 부여 #db procedure 권한 부여 #
- 안드로이드 앱 아이콘 변경 #안드로이드 앱 아이콘 사이즈 #안드로이드 앱 아이콘 가이드
- php #안드로이드 #로그인&회원가입
- hedisql #mariadb #mysql #마리아db #암호화 복호화 #aes512 #aes_encrypt #aes_decrypt #hedisql 펑션 생성 #hedisql 프로시저 생성 #hedisql 매개변수 #db 펑션 매개변수 #db 프로시저 #db 함수 #db return
- hedisql limit 1000
- android hedisql #안드로이드 mariaDB #안드로이드 로그인 권한 #안드로이드 로그인
- mysql #dataloongforcolumn #ER_DATA_TOO_LONG #mariaDB #my.ini찾기 #숨김my.ini찾기 #strict mode 해제 #strict mode
- 리눅스 #우분투 포트포워딩 #리눅스 포트포워딩 #우분투22.04 php apache db #mariadb #mysql
- react #react 프로젝트 생성 #초보 #쉽게 #react 세팅 #react frontend #리액트 기본구조
- 부트스트랩 추가시 오류 #
- MySQL #안드로이드 로그인기능 #안드로이드 php 오류 #안드로이드 db #
- MySQL(MariaDB)접속 #MariaDB원격 접속 #콘솔에서mysql접속 #원격지에서MySQL #php안드로이드 연동
- 안드로이드 아이콘 만들기 #안드로이드 vector asset #android vector asset custom #안드로이드 vector background color change #android pathdata editor #vector drawables edit #vector drawable background color #drawable background color #an
Archives
- Today
- Total
맨땅에 코딩
안드로이드 리스트뷰 아이템 정렬(내림차순) 본문
목차
반응형
package org.techtown.dlfdlrhddl;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class ListViewAdapter extends BaseAdapter {
ArrayList<ListViewAdapterData> list = new ArrayList<ListViewAdapterData>();
@Override
public int getCount() {
return list.size(); //그냥 배열의 크기를 반환하면 됨
}
@Override
// public ListViewAdapterData getItem(int i) {
public Object getItem(int i) {
return list.get(i); //배열에 아이템을 현재 위치값을 넣어 가져옴
}
@Override
public long getItemId(int i) {
return i; //그냥 위치값을 반환해도 되지만 원한다면 아이템의 num 을 반환해도 된다.
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
final Context context = viewGroup.getContext();
//리스트뷰에 아이템이 인플레이트 되어있는지 확인한후
//아이템이 없다면 아래처럼 아이템 레이아웃을 인플레이트 하고 view객체에 담는다.
if(view == null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.listview,viewGroup,false);
}
//이제 아이템에 존재하는 텍스트뷰 객체들을 view객체에서 찾아 가져온다
TextView tvId = (TextView)view.findViewById(R.id.item_tv_id);
TextView tvName = (TextView)view.findViewById(R.id.item_tv_name);
TextView tvAge = (TextView)view.findViewById(R.id.item_tv_age);
TextView tvAddress = (TextView)view.findViewById(R.id.item_tv_address);
//현재 포지션에 해당하는 아이템에 글자를 적용하기 위해 list배열에서 객체를 가져온다.
ListViewAdapterData listdata = list.get(i);
//가져온 객체안에 있는 글자들을 각 뷰에 적용한다
tvId.setText(Integer.toString(listdata.get_id())); //원래 int형이라 String으로 형 변환
tvName.setText(listdata.getName());
tvAge.setText(listdata.getAge());
tvAddress.setText(listdata.getAddress());
return view;
}
//ArrayList로 선언된 list 변수에 목록을 채워주기 위함 다른방식으로 구현해도 됨
public void addItemToList(int num, String name, String age, String address){
ListViewAdapterData listdata = new ListViewAdapterData();
listdata.set_id(num);
listdata.setName(name);
listdata.setAge(age);
listdata.setAddress(address);
//값들의 조립이 완성된 listdata객체 한개를 list배열에 추가
list.add(listdata);
}
}
제 ListViewAdapter.java 파일입니다
여기서 리스트뷰의 아이템을 내림차순으로 정렬하고 싶어서 찾아보니 comparator, sortorder 등 많은 방법이 있었으나
Collections.sort(List, new Comparator() {
@Override
public int compare(Data a1, Data a2) {
return a1.getDate().compareTo(a2.getDate());
}
});
제 코드에 적용하기 어려워서 좋은 방법이 뭐가 있을까 찾아보았습니다
그러다 발견한부분!!
위 ListViewAdapter.java 파일에서
//값들의 조립이 완성된 listdata객체 한개를 list배열에 추가
list.add(listdata);
를
//값들의 조립이 완성된 listdata객체 한개를 list배열에 추가
list.add(0, listdata);
이렇게만 바꿔주시면 리스트뷰 아이템 내림차순 정렬 성공!
(내림차순 = 제일 최근 데이터가 상단에 표출)
컨트롤+왼쪽 마우스 클릭 하셨을때 ArrayList.Java에서 이 함수로 연결된다면 맞게 하신겁니다
다시 리스트뷰 데이터를 오름차순으로 정렬하고 싶으시다면 0을 지워주시기만 하면 됩니다!
(오름차순 = 제일 오래된 데이터가 상단에 표출)
반응형
'앱 개발 > Java' 카테고리의 다른 글
[안드로이드] 레이아웃 배경색 어둡게 (0) | 2022.01.03 |
---|---|
[안드로이드] 권한 요청 팝업 (한번에 여러개 요청) (0) | 2022.01.03 |
안드로이드 DB 데이터 csv 파일로 추출 (0) | 2021.12.23 |
자바 16진수 문자 출력할때 ffff 출력 현상 + 쉬프트연산 및 계산 (0) | 2021.12.22 |
자바 비트 연산, 쉬프트 연산자 (0) | 2021.12.22 |