我想在amazon上inapppurchasing的SamplepurchaseListener.java的onpurchaseresponse()中使用共享首选项
当案例成功时,我想编辑变量值,然后在项目的其他类中使用该值。 我怎么做? 请推荐我好吗我想在amazon上inapppurchasing的SamplepurchaseListener.java的onpurchaseresponse()中使用共享首选项,java,android,in-app-purchase,sharedpreferences,amazon,Java,Android,In App Purchase,Sharedpreferences,Amazon,当案例成功时,我想编辑变量值,然后在项目的其他类中使用该值。 我怎么做? 请推荐我好吗 switch (status) { case SUCCESSFUL: SamplePurchasingListener.this.runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated
switch (status) {
case SUCCESSFUL:
SamplePurchasingListener.this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_WORLD_READABLE).edit();
editor.putBoolean("PREMIUM", true); // Storing boolean - true/false
editor.commit();
}
});
final Receipt receipt = response.getReceipt();
iapManager.setAmazonUserId(response.getUserData().getUserId(), response.getUserData().getMarketplace());
Log.d(TAG, "onPurchaseResponse: receipt json:" + receipt.toJSON());
iapManager.handleReceipt(response.getRequestId().toString(), receipt, response.getUserData());
iapManager.refreshLevel2Availability();
break;
case ALREADY_PURCHASED:
Log.i(TAG,
"onPurchaseResponse: already purchased, you should verify the entitlement purchase on your side and make sure the purchase was granted to customer");
break;
如果您只想从另一个类中检索值,为什么不直接从首选项中获取它呢?大概是这样的:
SharedPreferences sp = getSharedPreferences(MY_PREFS_NAME, MODE_WORLD_READABLE);
boolean premium = sp.getBoolean("PREMIUM", false);
if(premium) { ...
若之前并没有存储值,方法将返回“false”。
可能我还没有理解您的问题。我正在尝试这样做,但不幸的是,我没有得到调用pref.getboolean()的值。有什么建议吗?试着像这样初始化你的“pref:
SharedReferences pref=PreferenceManager.GetDefaultSharedReferences(getApplicationContext())代码>也许,其他类,您试图在其中检索值,但不包含所需的上下文。谢谢您的建议。工作正常:)