마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 baseAdapter 질문입니다.

0 추천
현재 어뎁터를 사용해 뷰를 뿌리고 있는데

어뎁터로 뿌린 뷰에서 해당 위치의 버튼을 클릭하는것은 성공하였으나

지금 하고싶은 기능이 해당 위치의 뷰의 버튼을 클릭하면 해당 뷰의 텍스트를 변경하는 기능을 구현하고 싶은데

도저희 방법이 떠오르지 않아서 질문드립니다.

 

  --------------------------------A--
  text  text      button(btnList) B
  --------------------------------C---
  text  text      BUTTON(btnList) D
  --------------------------------E--

 

저런식 리스트뷰에서 B의 버튼을 누르면 B의 text의 값을 변동할수있게 하고싶습니다.
익명사용자 님이 2015년 12월 4일 질문

3개의 답변

+1 추천
B버튼 클릭하는거면 http://blog.danggun.net/3124 여기 참고하시면 될거에요 어렵지않아요 ^^

그리고 혹시 문제될수있는게 A B C D E 모두 리스트면 계산하는데 오류날수도 있고 B, D 리스트 순서가

2,4 로되서 순서대로 무언가를할때 계산식이 들어가야할거에요.

A C E가 그냥 구분선을 주고 싶어서 한거라면 레이아웃 설정하는 부분에서 구분선주는 방법이있어요

Divider라고 코드에서 쓰는방법도 있고,  xml에서 사용할수도 있어요.

http://hee_8383.blog.me/220247415068 혹시 구분선이 맞다면 이걸쓰면될거에요 ^^
윤슈슈슈 (3,030 포인트) 님이 2015년 12월 4일 답변
처음주신 링크인   http://blog.danggun.net/3124 에서 Edit를 클릭하면 그옆에 텍스트를 바꿀수는 없는건가요??
+1 추천
뭐 여러가지 방법이 있겠지만 그 중 하나로

리스트뷰를 사용하셨다면 데이터를 array형태로 저장하고 계실테니 저 버튼의 position을 기준으로 해당 데이터 array에서 값을 치환한다음 notifyDataSetChanged()를 호출하셔도 됩니다. (버튼의 onClick에서 작성하시면 됩니다.)

저 버튼의 parent를 구해서 직접 치환할 수도 있지만... 데이터를 써야 할 수도 있으니 그냥 이것만... (실은 답변 달다가 날라가서요 ㅜㅜ)
귀찮근 (2,960 포인트) 님이 2015년 12월 4일 답변
버튼의 parent 구해서 치환하는 방법 한번 적어주시면 안될까요 ㅠㅠ 데이터는 json으로 가져와서 뿌려주는 형식이여서요...
현재 실행해 볼 수 없어 그냥 대충 적겠습니다.

getView(...,int position) {
...// viewHolder든 뭐든 컨트롤 정의

final int pos = position;
btn.setOnClickerListener(new View.OnClickListener() {
@Ovrride
public void onClick(View v) {
//만약 버튼 있는 상위 레이아웃이 Linear일때
LinearLayout ly = (LinearLayout) v.getParent();
((TextView) ly.findViewById(R.id.아이디)).setText("변경 텍스트");
//실 데이터 값을 변경해주지 않으면 의미 없음. (갱신이 되면 이전 데이터값으로 변경되기 때문.)
//Array리스트면 대충
list.set(pos, "변경 텍스트");
}

}
}
}

이렇게 하거나

getView(...,int position) {
...// viewHolder든 뭐든 컨트롤 정의

final int pos = position;
btn.setOnClickerListener(new View.OnClickListener() {
@Ovrride
public void onClick(View v) {

//Array리스트면 대충
list.set(pos, "변경 텍스트");
notifyDataSetChanged();
}

}
}
}

이러시면 될듯합니다...
0 추천
어뎁터에 들어가는 내용들을 ArrayAdapter로 관리하시고

버튼선택은 onClick리스너 달아주셔서 position의 내용을 getString으로 받아오심담에

수정해주시고 다시 ArrayAdapter에 넣으신 다음에 notify 머시기 갱신해주시면 됩니다...
날날날날 (560 포인트) 님이 2015년 12월 4일 답변
...