Java Android-检查某些值不会
我正在进行Android计费,并试图将onPurchaseStateChange方法设置为正确,但它似乎不起作用Java Android-检查某些值不会,java,android,Java,Android,我正在进行Android计费,并试图将onPurchaseStateChange方法设置为正确,但它似乎不起作用 @Override public void onPurchaseStateChange(PurchaseState purchaseState, String itemId, int quantity, long purchaseTime, String developerPayload) { if (purchase
@Override
public void onPurchaseStateChange(PurchaseState purchaseState, String itemId,
int quantity, long purchaseTime, String developerPayload)
{
if (purchaseState == PurchaseState.PURCHASED)
{
mOwnedItems.add(itemId);
if ( itemId != null && itemId.trim().equals("3") )
{
Intent myIntent = new Intent(ExtraHelpActivity.this, PsychologyActivity.class);
ExtraHelpActivity.this.startActivity(myIntent);
}
if ( itemId != null && itemId.trim().equals("4") )
{
Intent myIntent = new Intent(ExtraHelpActivity.this, NumberOfBusinessesActivity.class);
ExtraHelpActivity.this.startActivity(myIntent);
}
}
else
if (purchaseState == PurchaseState.CANCELED)
{
// purchase canceled
}
else
if (purchaseState == PurchaseState.REFUNDED)
{
// user ask for a refund
}
else
{
if ( itemId != null && itemId.equals("3") )
{
Intent myIntent = new Intent(ExtraHelpActivity.this, PsychologyActivity.class);
ExtraHelpActivity.this.startActivity(myIntent);
}
if ( itemId != null && itemId.equals("4") )
{
Intent myIntent = new Intent(ExtraHelpActivity.this, NumberOfBusinessesActivity.class);
ExtraHelpActivity.this.startActivity(myIntent);
}
}
因此,当purchaseId为“4”或“3”且purchaseState==purchaseState.PURCHASED…出于某种原因,它似乎没有进入if语句,并且没有执行转到下一页的意图
有人知道为什么会这样吗?这似乎很奇怪。它可能是Java的东西吗
谢谢 PurchaseState不是像
int
、long
、float
等那样的原始数据类型,因此您应该使用:
purchaseState.equals(PurchaseState.PURCHASED)
而不是==
,就像您使用字符串一样:
string1.equals(string2) // Results you expect
不一样
string1 == string2 // Don't do this...
谢谢,但在我的例子中,purchaseState==purchaseState.PURCHASED被证明是正确的,接下来的代码行似乎就是问题所在。嗯,为了确定您是否在调试器中验证了
itemId
是“3”或“4”(而不是purchaseId
)是的,代码进入了第一个if语句。它实际上不是来自调试器-它来自一个实时应用程序,我让它发送电子邮件给我,如果它进入if语句,它会这样做,并且它报告的值与我预期的值相同。我承认我没有在应用程序计费中使用,但ExtraHelpActivity是活动活动(在前台)?好问题。ExtraHelpActivity是当前的活动,但是,我们正在讨论的代码中的方法位于内部类中。那会有区别吗?我应该使用类似于“this”的东西,还是以另一种方式获取上下文?谢谢