gpt4 book ai didi

java - 在 TextView 中保存数据

转载 作者:行者123 更新时间:2023-11-30 12:07:30 25 4
gpt4 key购买 nike

我是 Android 编程新手。我创建了一个应用程序,在其中我将视频添加到奖品中,这些视频给我一个硬币奖品,这个硬币奖品以百分比显示在 TextView 中。

问题是,当我离开应用程序并返回或打开应用程序屏幕时,TextView 百分比计数器将重置为零,然后每个用户的工作将被删除。我需要找到一种我无法编写的方法,以保存最高 100% 的学分,因此学分必须保留到最后,没有任何东西可以删除它们,我尝试了 onSaveInstanceState outstate 方法,它不起作用。

下面是我写的App代码。

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {

private AdView mAdView;
private WebView mywebview;
private InterstitialAd mInterstitialAd;
private FirebaseAnalytics mFirebaseAnalytics;
private RewardedVideoAd mRewardedVideoAd;
private static final String TAG = MainActivity.class.getName();
public double Coins;

RelativeLayout Home;
RelativeLayout PgCoins;
Button btn1, btn2;
ImageButton Backbtn;
TextView mCoinscounter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, "");

//counter CRD
mCoinscounter = (TextView) findViewById(R.id.Textcoins);

// WEbView
WebView mywebview = findViewById(R.id.mywebview);
WebSettings webSettings = mywebview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
mywebview.setWebChromeClient(new WebChromeClient());
mywebview.getSettings().setUseWideViewPort(true);
mywebview.setFocusableInTouchMode(true);
mywebview.setWebViewClient(new WebViewClient());
mywebview.loadUrl("url");

Home = findViewById(R.id.home);
PgCoins = findViewById(R.id.pagecoins);

btn1 = findViewById(R.id.btn1);
btn2 = findViewById(R.id.btn2);
Backbtn = findViewById(R.id.backbtn);

Home.setVisibility(View.VISIBLE);
PgCoins.setVisibility(View.GONE);

findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mRewardedVideoAd.isLoaded()) {
mRewardedVideoAd.show();
}
}
});

mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
mRewardedVideoAd.setRewardedVideoAdListener(this);

// ADMob Top
mAdView = findViewById(R.id.adViewTop);
AdRequest adRequest = new AdRequest.Builder().setRequestAgent("android_studio:ad_template").build();
mAdView.loadAd(adRequest);

// ADMob Bot
mAdView = findViewById(R.id.adViewBot);
AdRequest adRequest1 = new AdRequest.Builder().setRequestAgent("android_studio:ad_template").build();
mAdView.loadAd(adRequest1);

// ADMob Top Coins
mAdView = findViewById(R.id.adViewTopcoins);
AdRequest adRequest2 = new AdRequest.Builder().setRequestAgent("android_studio:ad_template").build();
mAdView.loadAd(adRequest2);

// ADMob Bot Coins
mAdView = findViewById(R.id.adViewBotcoins);
AdRequest adRequest3 = new AdRequest.Builder().setRequestAgent("android_studio:ad_template").build();
mAdView.loadAd(adRequest3);

//ADMob Interstitial
prepareAd();
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Log.d("TAG", "Interstitial not loaded");
}

prepareAd();
}
});

}
}, 60, 60, TimeUnit.SECONDS);

// Obtain the FirebaseAnalytics instance.
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);

//ADMob Video
loadRewardedVideoAd();

}
public void displayCrd (double amount){
mCoinscounter.setText(String.format("%.2f", amount));
}

private void loadRewardedVideoAd() {
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917",
new AdRequest.Builder().build());
}

//ADMob Interstitial
public void prepareAd(){
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

//Screen Change Page
boolean Change = true;

public void change(View view)
{
if (Change){
Home.setVisibility(View.GONE);
PgCoins.setVisibility(View.VISIBLE);
Change = false;
}else{
Home.setVisibility(View.VISIBLE);
PgCoins.setVisibility(View.GONE);
Change = true;
}
}

@Override
public void onRewardedVideoAdLoaded() {
Log.d(TAG, "Video Caricato");
}

@Override
public void onRewardedVideoAdOpened() {

}

@Override
public void onRewardedVideoStarted() {

}

@Override
public void onRewardedVideoAdClosed() {
loadRewardedVideoAd();
}

@Override
public void onRewarded(RewardItem rewardItem) {
Toast.makeText(this, " Amount " + rewardItem.getType() + " : " + rewardItem.getAmount(), Toast.LENGTH_SHORT).show();
Coins += rewardItem.getAmount();
displayCrd(Coins/3600*100);
}

@Override
public void onRewardedVideoAdLeftApplication() {

}

@Override
public void onRewardedVideoAdFailedToLoad(int i) {
Log.d(TAG, "Caricamento Fallito");
}

@Override
public void onRewardedVideoCompleted() {
loadRewardedVideoAd();
}
}

最佳答案

您必须使用 SharedPreferences

因为您可以存储所需的值并检索它。

使用这个你可以在prefereces中存储值

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putInt("scrore", 10);
editor.putString("userName", "xyz");
editor.apply();

使用它您可以从偏好中检索值

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String userName = prefs.getString("userName", null);
if (userName != null) {
int scrore = prefs.getInt("scrore", 0);//0 is the default value.
}

https://developer.android.com/reference/android/content/SharedPreferences

关于java - 在 TextView 中保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54882728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com