마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
recycler view 에서 edittext로 가격을 정한뒤 그 가격의 총합을 프래그먼트에 나타내려합니다.
0
추천
리사이클러 뷰 어댑터에서 에서 edittext 값을 전부 더해서 프래그먼트에 텍스트뷰에 그값을 넣으려고하는데
edittext값을 전부 더하는 방법과 그 값을 프래그먼트에서 받을 수 있는 방법을 알고싶습니다.
버튼을 눌러서 값을 가져오는것 말고 뷰홀더의 edittext에 textwatcher를 이용해서 하려는데 도무지 안되네요 ㅠㅠ
도와주시면 감사하겟습니다
edittext
프래그먼트
안드로이드
customadapter
Edge_JH
(
200
포인트)
님이
2016년 9월 10일
질문
이런 질문은 님이 시도해보신 코드를 보여주셔야 님이 의도하는 바를 이해하기 쉽습니다. 그런 힌트를 안주신 관계로 제 나름대로 상상해서 댓글을 다는 것임을 이해해 주세요.
먼저 전체 아이템을 가지고 있는 ArrayList같은 collection 클래스를 만드세요. 이 클래스는 UI에 종속되지 않는 데이터만을 처리하는 클래스가 됩니다. 아래와 같은 형태가 될 것 같네요.
//Single item
public class item {
private double price;
private double sum;
public double getPrice(){...}
public void setPrice(double value){...}
}
public class ItemsModel {
private ArrayList<Item> items;
public ArrayList<Item> getItems(){...}
public double getSum(){...}
public void addItem(Item item){
items.add(item);
doSum();
}
public void updateItem(Item item) {
//code to update item
doSum();
}
public void deleteItem(Item item) {
//Code to delete item
doSum();
}
public void doSum() {
sum = 0;
for (Item item in items) {
sum += item.getPrice();
}
}
}
public interface summaryChangedListener {
public void onSummary(double sum);
}
//Your RecylerView adapter
private ItemsModel itemsModel;
private summaryChangedListener listener;
public void setItemsModel(ItemsModel itemsModel) {
this.itemsModel = itemsModel;
}
public void setSummaryChangedListener(summaryChangedListener listener) {
this.listener = listener;
}
editBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Item item = itemsModel.getItem(position);
item.setPrice(Double.parseDouble(s.toString());
itemsModel.updateItem(item);
if (listener != null)
listener.onSummary(itemsModel.getSum())
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
이제 Adapter 를 생성하는 쪽에서 Adapter를 생성할 때에 ItemsModel과 summaryChangedListener를 inject해주시면 될 것 같습니다.
fragment와 activity 구조를 안보여 주셨기 때문에 나머지는 뭐라 말씀드리기 힘든데,
fragment에서 summaryChangedListener를 implement하도록 해서 adapter에 inject할 수 있다면 자동으로 콜백 호출을 받게 될겁니다.
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
...