package kr.co.sl.safeportcar.activity;
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;
import kr.co.sl.safeportcar.R;
import kr.co.sl.safeportcar.data.GpsInfo;
public class WorkListAdapter extends BaseAdapter {
private ArrayList<GpsInfo> itemList;
private Context context;
public WorkListAdapter(Context context) {
this.context = context;
itemList = new ArrayList<>();
}
@Override
public int getCount() {
return itemList.size();
}
@Override
public Object getItem(int position) {
return itemList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View cView = convertView;
ViewHolder holder;
if (cView == null) {
cView = LayoutInflater.from(context).inflate(R.layout.list_item_work, parent, false);
holder = new ViewHolder(cView);
cView.setTag(holder);
} else {
holder = (ViewHolder) cView.getTag();
}
GpsInfo item = itemList.get(position);
holder.indexText.setText("" + (itemList.size() - position));
holder.timeText.setText(item.getTime());
String location = item.getLat() + "\n" + item.getLon();
holder.locationText.setText(location);
holder.speedText.setText(String.valueOf(item.getSpeed()));
holder.directText.setText(String.valueOf(item.getDirect()));
return cView;
}
public void addItem(GpsInfo gpsInfo) {
itemList.add(0, gpsInfo);
notifyDataSetChanged();
}
class ViewHolder {
TextView indexText;
TextView timeText;
TextView locationText;
TextView speedText;
TextView directText;
public ViewHolder(View view) {
indexText = view.findViewById(R.id.workListItemIndexText);
timeText = view.findViewById(R.id.workListItemTimeText);
locationText = view.findViewById(R.id.workListItemLocationText);
speedText = view.findViewById(R.id.workListItemSpeedText);
directText = view.findViewById(R.id.workListItemDirectText);
}
}
}
addItem 에서
itemList.add(0, gpsInfo);
add(gpsInfo) -> add(0,gpsInfo) 로 바꿔줍니다.
하지만 Index 번호가 아래로 쌓입니다.
holder.indexText.setText("" + (itemList.size() - position));
위와 같이 텍스트를 변경하시면 리스트가 0번 index로 계속 쌓이고 해당 인덱스의 포지션이 +1씩 증가하면서 쌓이게 됩니다.
리스트를 아에 맨 아래부터 쌓고 싶으신 분들은
listView 가 있는 xml에
android:stackFromBottom="true"
를 추가하시면 되겠습니다.
'프로그래밍 > 안드로이드,xml' 카테고리의 다른 글
로케이션 권한체크 (0) | 2020.09.24 |
---|---|
HttpRequest 관련 프로토콜 접속 오류 (0) | 2020.09.24 |
Fragment 간 이동 및 데이터 전달 저장용 (0) | 2020.05.29 |
Retropit2 저장용 (0) | 2020.05.29 |
seekbar와 progressbar 사이에 막대view 적용시켜보기 (0) | 2019.07.19 |