2025년 9월 23일 카카오 사태가 벌어졌다. 나는 다행히 앱스토어 설정에 들어가서 자동업데이트를 비활성해서 이번 사태를 잠깐 피해갈 수 있었다. 하지만 유튜브를 보다보니까 이번에 업데이트를 이미 한 사람들에게 나의 프로필이 까발려 진다는 것을 알게되었다. 내 친구한테 알려지는 건 좋은데 카카오톡은 내가 전혀 모르는 사람이나 싫은 사람, 업무적인 사람들 연락처에 있는 모든 사람이나 전화 번호가 변경되서 모르는 사람들도 친구 목록에 표시가 된다. 그런 모든 사람들에게 내 사생활을 강제로 공개되도록 해버렸다는 거에 공포를 느꼈다. 프로필 탭으로 이동해서 내 프로필에서 오른쪽 상단에 설정 버튼이 있고 그걸 클릭하면 프로필 설정들이 있고 거기서 옵션들을 비활성 해주자 “프로필 인증배지 표시”, “내 프로필 검색”, “내 홈 표시” 모두 비활성 해줬다. 솔직히 앞으로 이번 사태 이전으로 롤백을 시키지 않는한 앞으로 프로필에 사진을 올릴거 같지 않다. 이미 앱은 배포가 되었고 이 사태가 벌어진 버전의 앱을 업데이트 하지 않고 사용하는 사람들이 많을것이다. (보통은 앱을 배포 하고 강제로 업데이트 유도하지 않는 이상 앱을 업데이트 하지 않는 사람들이 많다.) 만약에 더 프로필 공개에 공포를 느낀다면 프로필에 올린 이미지들을 당장 지우자. *추가* 숏폼과 오픈채팅을 합쳐놓은 것도 참 거지같은 짓을 한거라고 생각한다. 오픈채팅에 개발이나 다이어트나 여러가지 같은 관심을 가진 사람들이 단체 톡방에 들어가서 커뮤니티를 하고 계실거다. 나도 개발 단체톡방에 들어가서 대화를 하는데 왜 그걸 합쳐놔서 오픈채팅을 들어가기 위해서 무조건 숏폼을 강제로 봐야 한다는 건 참 별로다. *추가 2* 벌서 온갖 야시시 하고 폭력적인 숏폼에 노출되고 있...
리스트 뷰에서 여러 타입의 셀을 사용하게 될때
몇가지 방법이 있지만 (http://www.survivingwithandroid.com/2014/08/android- listview-with-multiple-row.html)
아래 사용한 방법은 셀에 여러타입의 셀을 추가를 해서 타입에 따라 보이게 하거나 숨겨서 리스트 를 각각 표시해주는 방법이다.
아래 처럼하게 되면 셀을 계속 생성하는 것을 방지 할 수 있고, 그로 인한 속도저하나 메모리 낭비를 줄일 수 있을 것 같다.
개발 툴은 안드로이드 스튜디오 1.2.3 버전
@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
//View v = convertView; LinearLayout cellLayout = (LinearLayout)convertView;
if(mInflater != null){
int type = getItemViewType(position);
if(cellLayout == null){
viewHolder = new ViewHolder();
LinearLayout sectionLayount = (LinearLayout)mInflater.inflate(R.layout.cell_section_day, null);
//v = mInflater.inflate(R.layout.cell_section_day, parent, false); cellLayout = (LinearLayout)mInflater.inflate(R.layout.cell_mblistbasic, null);
cellLayout.addView(sectionLayount);
TextView sectionlb = (TextView)sectionLayount.findViewById(R.id.sectiondaylb);
TextView sectiontotalb = (TextView)sectionLayount.findViewById(R.id.sectiontotalb);
viewHolder.sectionlb = sectionlb;
viewHolder.sectiontotalb = sectiontotalb;
TextView titlelb = (TextView)cellLayout.findViewById(R.id.mblistbasictitlelb);
TextView titlesublb = (TextView)cellLayout.findViewById(R.id.mblistbasicsblb);
TextView moneylb = (TextView)cellLayout.findViewById(R.id.mblistbasicmlb);
LinearLayout mblistLayout = (LinearLayout)cellLayout.findViewById(R.id.mblistbasicly);
viewHolder.titlelb = titlelb;
viewHolder.titlesublb = titlesublb;
viewHolder.moneylb = moneylb;
viewHolder.sectionLayount = sectionLayount;
viewHolder.mblistLayout = mblistLayout;
cellLayout.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) cellLayout.getTag();
}
if(type == ViewType_Section){
viewHolder.sectionLayount.setVisibility(View.VISIBLE);
viewHolder.mblistLayout.setVisibility(View.GONE);
}
else if(type == ViewType_Row) {
viewHolder.sectionLayount.setVisibility(View.GONE);
viewHolder.mblistLayout.setVisibility(View.VISIBLE);
}
}
return cellLayout;
}
private static class ViewHolder{
LinearLayout mblistLayout = null;
LinearLayout sectionLayount = null;
TextView sectionlb = null;
TextView sectiontotalb = null;
TextView titlelb = null;
TextView titlesublb = null;
TextView moneylb = null;
}