문제점을 찾지 못하여 질문드립니다.
질문 내용은 적립하기 액티비티에서 조건을 만족하면 적립금확인이라는 액티비티에 그 데이터가 전송됩니다.
그 후 에코샵이라는 액티비티에서 포인트를 사용하게 되면 적립금 확인 액티비티에서는
그 값이 제대로 나타나지 않습니다.

이미지를 보시는 바와 같이 5포인트가 적립된 화면입니다.
이후 에코샵이라는 액티비티에서 버튼을 눌러 사용하게 되면 많은 문제가 발생하네요


첫 번째 문제 10포인트가 적립됬다고 가정하에
5포인트 상품을 사용하게 되면 적립금 화면에서는 사용가능 포인트는 5포인트, 사용하신 포인트 5포인트
처음에는 이렇게 정상적으로 출력됩니다
다만 남은 포인트를 다시 사용할려고 5포인트 상품을 한번 더 누르면
사용가능 포인트 10포인트, 사용하신 포인트 0포인트 이렇게 출력이 바뀌네요
두번째 문제 10포인트 상품이나 15포인트 상품을 사용하게 되면 확인 액티비티에서는 아무런 값이 바뀌지 않습니다.
제 프로그램의 코딩중 무슨 문제점이 있는지 알려주시면 감사하겠습니다.
혹시 프리페런스 기능을 사용하여야 하면 어떻게 사용해야 하는건가요? 이것도 상세하게 알려주시면 감사하겠습니다.
아래부터 제가 코딩한 프로그램입니다.
첫번째로 적립하기 액티비티입니다.
<적립하기 액티비티 코드>
선언한 변수
static int point;
if(toHexString(tagId).equals("EE77DC90")){
Toast.makeText(this, "캔 5포인트가 적립되었습니다", Toast.LENGTH_SHORT).show();
Intent get = new Intent(this,PointgetActivity.class);
point = point + 5;
get.putExtra("point", point); //값 저장
startActivityForResult(get,5);
finish();
}
else if(toHexString(tagId).equals("3EABDA90")){
Toast.makeText(this, "플라스틱 10포인트가 적립되었습니다", Toast.LENGTH_SHORT).show();
Intent get = new Intent(this,PointgetActivity.class);
point = point + 10;
get.putExtra("point", point); //값 저장
startActivityForResult(get,5);
finish();
}
else{
Toast.makeText(this, "잘못된 태그입니다", Toast.LENGTH_SHORT).show();
}
}
두번째로 적립금 확인 액티비티입니다.
<적립금확인 액티비티>
사용한 변수
int getpoint=0;;
int sale;
static int accruepoint=0;;
TextView get = (TextView) findViewById(R.id.gettext);
getpoint = PointActivity.point;
get.setText(String.format(getResources().getString(R.string.gettext),getpoint));
TextView accrue = (TextView) findViewById(R.id.accruetext);
accruepoint = getpoint - MallActivity.itempoint;
accrue.setText(String.format(getResources().getString(R.string.accruetext),accruepoint));
TextView use = (TextView) findViewById(R.id.usetext);
sale = MallActivity.itempoint;
use.setText(String.format(getResources().getString(R.string.usetext),sale));
마지막으로 사용하기 액티비티입니다.
사용한 변수
static int itempoint;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mall);
Button item1 = (Button)findViewById(R.id.item1);
item1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(PointgetActivity.accruepoint >= 5){
itempoint = PointgetActivity.accruepoint - 5;
Toast.makeText(getApplicationContext(),"재학증명서 무료이용권을 사용하셨습니다.",Toast.LENGTH_SHORT).show();
return;
}
else{
Toast.makeText(getApplicationContext(),"포인트가 부족합니다.",Toast.LENGTH_SHORT).show();
}
}
});
//졸업증명서 아이템
Button item2 = (Button)findViewById(R.id.item2);
item2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(PointgetActivity.accruepoint >= 10){
itempoint = PointgetActivity.accruepoint - 10;
Toast.makeText(getApplicationContext(),"졸업증명서 무료이용권을 사용하셨습니다.",Toast.LENGTH_SHORT).show();
return;
}
else{
Toast.makeText(getApplicationContext(),"포인트가 부족합니다.",Toast.LENGTH_SHORT).show();
}
}
});
//성적증명서 아이템
Button item3 = (Button)findViewById(R.id.item3);
item3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(PointgetActivity.accruepoint >= 15){
itempoint = PointgetActivity.accruepoint - 15;
Toast.makeText(getApplicationContext(),"성적증명서 무료이용권을 사용하셨습니다.",Toast.LENGTH_SHORT).show();
return;
}
else{
Toast.makeText(getApplicationContext(),"포인트가 부족합니다.",Toast.LENGTH_SHORT).show();
}
}
});
}
많은 도움 주시면 감사하겠습니다.