我试图在onClick侦听器中调用此方法:
mHelper.launchPurchaseFlow(this,
SKU_INFINITE_GAS, IabHelper.ITEM_TYPE_SUBS,
RC_REQUEST, mPurchaseFinishedListener, payload);
但是因为它位于onClick侦听器中,所以对它的引用不是对类的引用,而是对onClick侦听器的引用。如果此代码在onClick侦听器中,有没有办法传递类引用?
谢谢!
答案 0 :(得分:3)
如果您的包含类名为egMyClass,那么您可以使用MyClass.this:
mHelper.launchPurchaseFlow(MyClass.this,
SKU_INFINITE_GAS, IabHelper.ITEM_TYPE_SUBS,
RC_REQUEST, mPurchaseFinishedListener, payload);
答案 1 :(得分:2)
在您的活动中定义Context mContext=null;
,在oncreate活动方法中将此实例设为
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
}
并使用
mHelper.launchPurchaseFlow(mContext,
SKU_INFINITE_GAS, IabHelper.ITEM_TYPE_SUBS,
RC_REQUEST, mPurchaseFinishedListener, payload);
或直接使用
mHelper.launchPurchaseFlow(youractivity.this,
SKU_INFINITE_GAS, IabHelper.ITEM_TYPE_SUBS,
RC_REQUEST, mPurchaseFinishedListener, payload);
答案 2 :(得分:1)
可能有2例
1)如果你的班级延伸Context
,例如。您可以Activity
,Service
mHelper.launchPurchaseFlow(getApplicationContext(),SKU_INFINITE_GAS,IabHelper.ITEM_TYPE_SUBS,RC_REQUEST,mPurchaseFinishedListener, payload);
2)如果您的课程没有延伸Context
,那么您需要以某种方式将Context
的对象传递给该课程并致电
mHelper.launchPurchaseFlow(mContext.getApplicationContext(),SKU_INFINITE_GAS,IabHelper.ITEM_TYPE_SUBS,RC_REQUEST,mPurchaseFinishedListener, payload);
其中mContext
是Context
class