1

我在应用程序中包含了 paypal sdk,并设置了产品名称和价格,如附图所示。

是否可以更改 paypal PaymentActivity 类的标题。?

我从这个链接使用了贝宝的整个代码。请 建议我们是否可以将标题更改为任何文本,(我想更改用红圈标记的文本)?

在此处输入图像描述

4

3 回答 3

1

Jeff 来自 PayPal 移动 SDK 团队。

PayPal Android SDK 不支持修改任何 SDK 活动。我们不打算允许修改标题的功能,因为这会导致用户体验不一致。但是,我们对用户的反馈持开放态度,因此如果您有功能请求,请随时在GitHub中提出问题!

于 2013-10-23T21:15:28.960 回答
0

您的AndroidManifest.xml文件应该有一个如下PaymentActivity所示的条目:

<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />

您所要做的就是将label属性添加到该属性以更改标题:

<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" android:label="@string/some_title" />

有关其他可能有用的属性,请参阅activity标签文档

注意:我在这里假设 PayPal SDK 将允许您覆盖标题。也就是说,如果没有明确给出,我希望它只设置默认标题。


编辑:不幸的是,上面的假设已被证明是不正确的。再深入一点,发现 PayPal SDK 中的每个活动总是在onCreate()方法中设置其标题。这实际上有点令人惊讶,因为这意味着 PayPal 没有利用 Android 对本地化和资源的内置支持。虽然我认为它确实允许他们以 jar 的形式向开发人员提供 SDK,但它不支持捆绑 Android 资源。

无论如何,由于尚未声明各种活动final,您可以简单地尝试扩展它们并在超级完成工作后设置标题:

public class TitlePaymentMethodActivity extends PaymentMethodActivity {

    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle("Custom Title")
        // or:
        setTitle(R.string.custom_title);
    }

}

之后,您必须将清单更改为指向您的TitlePaymentMethodActivity,而不是直接指向 SDK 中的活动。请注意,如果 PayPal 决定最终确定活动类别,这种方法可能随时中断。考虑到这一点,我建议您遵循@shoe rat 的建议,向 PayPal 提出“官方”支持请求。

于 2013-10-21T09:44:19.993 回答
0

显然,有几个观察结果:

  • 您关闭屏幕截图的活动是PaymentMethodActivity(根据 Hierarchy Viewer)
  • PayPal SDK 使用ABS

根据 PayPal SDK 页面中提供的示例应用程序,使用以下onBuyPressed()命令启动 PaymentActivity startActivityForResult()

现在,根据SDK 参考资料,PaymentActivity 不提供任何用于设置自定义标题的 API。该页面列出setTitle()了“从类 android.app.Activity 继承的方法”的一部分,但没有提供有关如何扩展 PaymentActivity 以便可以利用这些 API 的任何详细信息。

所以,目前,没有办法使用自定义标题。

我个人不会费心更改该屏幕上的标题,因为它清楚地将自己描述为 PayPal 屏幕(因为人们会在浏览器上看到他们的主页),但如果您真的想要自定义标题,您可能需要提交一个新问题在他们的 GitHub 页面上

于 2013-10-21T11:23:27.537 回答