총 게시물 39,187건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

ListView에 Switch를 넣어둿는데요,

글쓴이 : KuRoN 날짜 : 2018-04-05 (목) 14:02 조회 : 2822
글주소 : http://www.androidside.com/B49/169655
 
  SWITCH 구입 디지키
즉시구입가능 및 최소주문량없음. SWITCH 주문. 당일 배송!
www.digikey.kr
  SWITCH 대신이앤엘
2-14구, 접지 및 개별형멀티탭전문, 대량구매할인, 공장직영, 생활용품등.
dsenl.com
  자이젤 수입 총판 랜장비
자이젤 수입총판, 전국대리점 모집, 스위치, POE, AP, 제안 및 상담 가능
www.lanjangbi.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

final ListView switch_listview;
final ListViewAdapter switch_adapter;

switch_adapter = new ListViewAdapter();

switch_listview = (ListView) w.findViewById(R.id.switch_test_list);

switch_adapter.addItem("1번째 스위치");
switch_adapter.addItem("2번째 스위치");
switch_adapter.addItem("3번째 스위치");
switch_adapter.addItem("4번째 스위치");


public class ListViewAdapter extends BaseAdapter {

private ArrayList<ListViewItem> listViewItemList = new ArrayList<ListViewItem>();

public ListViewAdapter() {

}

@Override
public int getCount() {
return listViewItemList.size();
}

@Override
public Object getItem(int position) {
return listViewItemList.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();

if(convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.switch_test, parent, false);
}

//ImageView iconImageView = (ImageView) convertView.findViewById(R.id.switch_image);
final TextView titleTextView = (TextView) convertView.findViewById(R.id.switch_text);
final Switch test_switch = (Switch) convertView.findViewById(R.id.switch_test);

ListViewItem listViewItem = listViewItemList.get(position);

//iconImageView.setImageDrawable(listViewItem.getIcon());
titleTextView.setText(listViewItem.getTitle());
test_switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if(isChecked == true) {
titleTextView.setText("현재 스위치가 켜져있습니다.");
}
else {
titleTextView.setText("현재 스위치가 꺼져있습니다.");
}
}
});

return convertView;
}

public void addItem(String title) {
ListViewItem item = new ListViewItem();

item.setTitle(title);

listViewItemList.add(item);
}
}

현재 Custom은 이런 상태이구요,
Adapter 가 없는건 신경쓰지마세요, 큰 리스트에 넣어서 출력하려고 그 쪽으로 빼놓은 상태입니다.

질문은, 여기서 1번째 스위치와 2번째 스위치 각각 다른 내용을 넣으려면 어떻게 해야할까요?

1번째 스위치는 지금 이대로 TextView에 Text를 바꾸는걸로 냅두고
2번째 스위치는 이미지를 나타나게 하거나, 또 다른 Text로 변환하거나 
또는 이미지가 나타나면서 Text도 같이 변한다거나 이런식으루요
어떻게해야할까요? 참조할만한 사이트나 도움말 부탁드립니다 ㅠ




질문자가 자신의 포인트 5 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 4을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

OSKiller 2018-04-05 (목) 14:15
position 별로 전부 따로 구현 하셔야 합니다
댓글주소 추천 0 반대 0
     
     
KuRoN 2018-04-05 (목) 14:33
[@OSKiller] 아 그럼 각각의 Custom을 만들어 각각 다른 Adapater를 연결해주면 되는건가요?
댓글주소 추천 0 반대 0
OSKiller 2018-04-05 (목) 15:07
스위치마다 다른 동작 하고 싶으신것 아닌가요?
포지션별로 스위치에다 다른 리스너를 구현 하라는 의미였습니다
댓글주소 추천 0 반대 0
     
     
KuRoN 2018-04-05 (목) 16:15
[@OSKiller] 현재는 스위치마다 다른 리스너긴 하지만 최종적으로는 리스트 별로 각 다른 기능들을 넣고 싶은데,
스위치마다 다른 리스너인 경우에는 OS님 말대로 하면 되고, 전체적으로 다른 기능을 넣고 싶을 때는 제가 말한대로 하면 되는걸까요?
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기