我有 BoostPoints 活动,用户通过观看奖励视频广告来提高积分,当用户观看广告时,他们加起来就是积分,现在的问题是,当我关闭活动或应用时并重新打开它,积分回到零。例如,用户观看广告并获得100分,当用户关闭活动或应用而不使用这些点并稍后再次打开时,点消失并返回到零。即使用户关闭应用程序并稍后打开它,我希望这些点可用,他们应该看到他们离开的位置。
我在onCreate();
//Save Coins
SharedPreferences saveCoins = this.getSharedPreferences("mySaverCoins", Context.MODE_PRIVATE);
pointsAmount = saveCoins.getInt("C",0);
当我使用此代码运行我的应用程序时,它不会保存我的硬币,每次启动它都会回到零。
我还尝试在`onCreate();
中添加这一行pointsAvailable.setText("C"+pointsAmount);
但我的活动由于这条线而崩溃
我的完整 java.class 看起来像这样
public class BoostPoints extends AppCompatActivity implements RewardedVideoAdListener {
public int pointsAmount = 0;
private RewardedVideoAd mAd;
Button freePoints;
TextView pointsAvailable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_boost_points);
getSupportActionBar().hide();
MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");
mAd = MobileAds.getRewardedVideoAdInstance(this);
LoadRewardedVideoAd();
mAd.setRewardedVideoAdListener(this);
freePoints=(Button) findViewById(R.id.btnFreePoints);
//Save Coins
SharedPreferences saveCoins = this.getSharedPreferences("mySaverCoins", Context.MODE_PRIVATE);
pointsAmount = saveCoins.getInt("C",0);
//Update Coins
pointsAvailable.setText("C"+pointsAmount); //This line crashes my activity
//Show points available
pointsAvailable = (TextView) findViewById(R.id.pointsAvailable);
}
public void FreePoints(View view) {
if (mAd.isLoaded()){
mAd.show();
}
}
private void LoadRewardedVideoAd()
{
if (!mAd.isLoaded()){
mAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build());
}
}
@Override
public void onRewarded(RewardItem rewardItem) {
pointsAmount = pointsAmount +10;
pointsAvailable.setText("C"+pointsAmount);
}
}
我的代码可能会出现什么问题
答案 0 :(得分:0)
您需要使用
将int
转换为String
pointsAvailable.setText("C"+String.valueOf(pointsAmount));
要保存积分,您需要将它们存储在SharedPreferences
的{{1}}中:
onRewarded