현재 각항목이 잘 출력되고 데이터저장에도 이상이없습니다.
다만 체크박스 클릭후 스크롤시 선택하지않은 체크박스가 체크가되어있고
기존 선택했던 체크박스는 사라지는 현상이 나타납니다.
제 생각에는 체크박스값을 별로 저장을해야될것같은데...
정확히 감이안옵니다.
소스는 아래와 같구요. 참고할수있는사이트나 해결방법좀 제시해주셨으면합니다..
이걸로 한달내내 붙잡고있네요..ㅠㅠ
public class listdata_3 extends BaseAdapter {
private Context context;
private ArrayList<EachList_4> datalist;
private int layout;
private LayoutInflater inflater;
public listdata_3(Context context, int layout,
ArrayList<EachList_4> listlist) {
this.context = context;
this.layout = layout;
this.datalist = listlist;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return datalist.size();
}
@Override
public Object getItem(int position) {
return datalist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public String getBArtCode(int position) {
return datalist.get(position).BArtCode;
}
public String getBArtNAme(int position) {
return datalist.get(position).BArtNAme;
}
public String getBStanDard(int position) {
return datalist.get(position).BStanDard;
}
public String getBUnit(int position) {
return datalist.get(position).BUnit;
}
public String getBSaleCost(int position) {
return datalist.get(position).BSaleCost;
}
public String getBAMount(int position) {
return datalist.get(position).BAMount;
}
public String getBjAMount(int position) {
return datalist.get(position).BjAMount;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
jeagoViewHolder viewHolder;
if (convertView == null) {
convertView = inflater.inflate(layout, parent, false);
viewHolder = new jeagoViewHolder();
viewHolder.ArtCode = (TextView) convertView
.findViewById(R.id.TxtbonsaArtCode);
viewHolder.ArtNAme = (TextView) convertView
.findViewById(R.id.TxtbonsaArtNAme);
viewHolder.StanDard = (TextView) convertView
.findViewById(R.id.TxtbonsaStanDard);
viewHolder.Unit = (TextView) convertView
.findViewById(R.id.TxtbonsaUnit);
viewHolder.SaleCost = (TextView) convertView
.findViewById(R.id.TxtSaleCost);
viewHolder.AMount = (TextView) convertView
.findViewById(R.id.TxtbonsaAMount);
viewHolder.jAMount = (TextView) convertView
.findViewById(R.id.TxtjAMount);
viewHolder.chkbox = (CheckBox) convertView.findViewById(R.id.chkbox);
convertView.setTag(viewHolder);
}
else{
viewHolder = (jeagoViewHolder) convertView.getTag();
}
double danga = Double.parseDouble(datalist.get(position).BSaleCost);
double danga1 = Double.parseDouble(String.format("%.0f", danga));
final int danga2 = (int) danga1;
DecimalFormat df = new DecimalFormat("#,##0");
viewHolder.ArtCode.setText(datalist.get(position).BArtCode);
viewHolder.ArtNAme.setText(datalist.get(position).BArtNAme);
viewHolder.StanDard.setText(datalist.get(position).BStanDard);
viewHolder.Unit.setText(datalist.get(position).BUnit);
viewHolder.SaleCost.setText(df.format(danga2));
viewHolder.AMount.setText(datalist.get(position).BAMount);
viewHolder.jAMount.setText(datalist.get(position).BjAMount);
if (pref.getString("PTVatMode", "").equals("1")) {
int vat = (danga2 / 11) * 1;
int money = danga2 - vat;
int tmoney = (money + vat) * 1;
db.execSQL("INSERT INTO jumun VALUES(null,'" + datalist.get(position).BArtCode + "', '" + datalist.get(position).BArtNAme + "','" + datalist.get(position).BStanDard + "','" + datalist.get(position).BUnit + "','1','" + danga2 + "','"+money+"','"+vat+"','"+tmoney+"','','0','0');");
}
else {
int vat = (danga2 / 10) * 1;
int money = (danga2) * 1;
int tmoney = vat + money;
db.execSQL("INSERT INTO jumun VALUES(null,'" + datalist.get(position).BArtCode + "', '" + datalist.get(position).BArtNAme + "','" + datalist.get(position).BStanDard + "','" + datalist.get(position).BUnit + "','1','" + danga2 + "','" + money + "','" + vat + "','" + tmoney + "','','0','0');");
}
viewHolder.chkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
if (isChecked) {
int id = position+1;
db.execSQL("Update jumun set checkYN1 = '1' where _id = '" +id + "';");
System.out.println("id값"+ id);
} else {
int id = position+1;
db.execSQL("Update jumun set checkYN1 = '0' where _id = '" +id + "';");
}
}
});
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
db.execSQL("Insert into orderTable(ArtCode,ArtName,StanDard,Unit,Amount,SaleCost,money,Vat,Tmoney,bigo,checkYN,checkYN1) select ArtCode,ArtName,StanDard,Unit,Amount,SaleCost,money,Vat,Tmoney,bigo,checkYN,checkYN1 from jumun where checkYN1='1';");
Intent i = new Intent(bonsajeagoActivity.this, jumunsinchung.class);
startActivity(i);
finish();
}
});
viewHolder.chkbox.setChecked(((ListView)parent).isItemChecked(position));
return convertView;
}
}
public class jeagoViewHolder
{
public TextView ArtCode;
public TextView ArtNAme;
public TextView StanDard;
public TextView Unit;
public TextView SaleCost;
public TextView AMount;
public TextView jAMount;
public CheckBox chkbox;
}