BaseAdapter를 상속 받아 그 안에 체크 박스와 텍스트뷰 2개(이름,수량) 버튼 2개(+,-)를 배치 했습니다.
그렇게 해서 +나 - 버튼을 눌렀을 경우 수량 TextView 의 수량을 가져와 1씩 증가 또는 차감을 한후 다시 수량TextView에
적용 시키려고 하는데요..
이게 보니까
값은 가져와 한번은 적용이 됩니다.
그런데 두번 하면 값이 그대로입니다.
아래 빨간 부분인데 앞뒤로 메세지를 띄워 보니 화면에만 값이 바뀌어 보일뿐 실제 적용은 않되더라구요...
setText 전,후 를 메세지를 보니 수량은 똑같습니다. setText만 하면 않되는 건가요?이거 하고
notifyDataSetChanged 까지 는 했는데요... 이상하게않 바뀌네요... 고수님들 답변좀 부탁 드리겠습니다.
이게 값이 변하지 않고 있다는것도 1주일 만에 찾은거라서요...더이상은....ㅜㅜ
답변은 좀 자세하게 부탁 드립니다...사실 안드로이드 시작 한지 이제 한달 정도 됀 완전 초보라....못알아 들어요..ㅜㅜ
public View getView(int position, View convertView, ViewGroup parent) {
final int pos = position;
if(convertView == null){
convertView = Inflater.inflate(layout,parent,false);
}else{
}
txt = (TextView)convertView.findViewById(R.id.name);
txt2 = (TextView)convertView.findViewById(R.id.cnt);
txt.setText(arSrc.get(pos).Name);
txt2.setText(arSrc.get(pos).Cnt);
if(pos == ipos){
Toast.makeText(maincon, String.valueOf(arSrc.get(ipos).Cnt), 0).show();
txt2.setText(String.valueOf(Integer.valueOf(arSrc.get(ipos).Cnt) + 1));
Toast.makeText(maincon, String.valueOf(arSrc.get(ipos).Cnt), 0).show();
MainActivity.MyAdapter.notifyDataSetChanged();
ipos = 10000;
}
Button btna = (Button)convertView.findViewById(R.id.add);
Button btnm = (Button)convertView.findViewById(R.id.min);
btna.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
String str = arSrc.get(pos).Name + "을 더합니다.";
/*Toast.makeText(maincon,String.valueOf(pos)+" : "+str +
String.valueOf(Integer.valueOf(arSrc.get(pos).Cnt) + 1),0).show();*/
ipos = pos;
MainActivity.MyAdapter.notifyDataSetChanged();
}
});
btnm.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
String str = arSrc.get(pos).Name + "을 뺍니다.";
Toast.makeText(maincon,str,0).show();
int cnt = Integer.valueOf(arSrc.get(pos).Cnt);
cnt = cnt - 1;
if(cnt < 1){
arSrc.remove(pos);
}else{
//txt2.setText(String.valueOf(Integer.valueOf(arSrc.get(pos).Cnt) - 1));
arSrc.set(pos, MainActivity.mi).Cnt = String.valueOf(cnt);
}
MainActivity.MyAdapter.notifyDataSetChanged();
}
});
return convertView;
}
자체 해결 했습니다...제가 설명을 참~ 이상하게 했죠? ^^; 어쨌든 봐주신 분들 감사합니다.~
빨간 글씨 부분은 사실 없어도 되네요..그리고
btna.setOnClickListener(new Button.OnClickListener() 내에 코드를 아래 처럼 바꾸고 static MyItem mi; 선언을 해서 해결 했습니다..
btna.setOnClickListener(new Button.OnClickListener(){ @SuppressWarnings("static-access") @Override public void onClick(View v) { String str = arSrc.get(pos).Name + "을 더합니다."; //이부분 체크 해보자...왜 메뉴명도 바뀌는지... int cnt = Integer.valueOf(arSrc.get(pos).Cnt) + 1; //수량 변경을 하기 위해 명도 다시 선언 해서 바꾼다.. mi = new MyItem(String.valueOf(cnt),arSrc.get(pos).Name); arSrc.set(pos, mi); Order.newAdapter.notifyDataSetChanged(); } });
Order.newAdapter.notifyDataSetChanged();
나중에 저 같은 분이 생길지도 모르니....ㅋㅋ 자답 이었습니다.