Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一旦点击不做任何事&引用;ViewPostImeInputStage操作“向下”;_Java_Android_Paypal - Fatal编程技术网

Java 一旦点击不做任何事&引用;ViewPostImeInputStage操作“向下”;

Java 一旦点击不做任何事&引用;ViewPostImeInputStage操作“向下”;,java,android,paypal,Java,Android,Paypal,我正在开发一个使用贝宝的应用程序。我需要使用MPL,而不是SDK,因为我的应用程序需要能够实现第三方支付。我遵循了各种教程,并创建了下面的代码。我没有得到任何编译器错误,也没有日志cat错误,但是当我运行它并点击“PayPal支付”按钮时,什么都没有发生。相反,当我点击按钮或屏幕上的任何位置时,我会得到ViewPostImeInputStage动作\u 我不知道为什么。请帮忙 public class MainActivity extends Activity implements View.O

我正在开发一个使用贝宝的应用程序。我需要使用MPL,而不是SDK,因为我的应用程序需要能够实现第三方支付。我遵循了各种教程,并创建了下面的代码。我没有得到任何编译器错误,也没有日志cat错误,但是当我运行它并点击“PayPal支付”按钮时,什么都没有发生。相反,当我点击按钮或屏幕上的任何位置时,我会得到
ViewPostImeInputStage动作\u

我不知道为什么。请帮忙

public class MainActivity extends Activity implements View.OnClickListener {

private CheckoutButton launchPayPalButton;
final static public int PAYPAL_BUTTON_ID = 10001;
private double _theSubtotal;
private double _taxAmount;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    initLibrary();
    showPayPalButton();
}

private void showPayPalButton() {
    LinearLayout linearLayout = new LinearLayout(this);
    linearLayout.setOrientation(LinearLayout.VERTICAL);

    ViewGroup.LayoutParams linearLayoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    setContentView(linearLayout, linearLayoutParam);

    LayoutParams lpView = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

    // Generate the PayPal checkout button and save it for later use
    PayPal pp = PayPal.getInstance();
    launchPayPalButton = pp.getCheckoutButton(this, PayPal.BUTTON_194x37, CheckoutButton.TEXT_PAY);

    // The OnClick listener for the checkout button
    launchPayPalButton.setOnClickListener(this);

    // Add the listener to the layout
    launchPayPalButton.setLayoutParams(lpView);
    launchPayPalButton.setId(PAYPAL_BUTTON_ID);
    linearLayout.addView(launchPayPalButton);

   }

public void PayPalButtonClick(View arg0) {
    PayPalPayment newPayment = new PayPalPayment();
    newPayment.setSubtotal(new BigDecimal(_theSubtotal));
    newPayment.setCurrencyType("USD");
    newPayment.setRecipient("my@email.com");
    newPayment.setMerchantName("My Company");
    Intent paypalIntent = PayPal.getInstance().checkout(newPayment, this);
    this.startActivityForResult(paypalIntent, 2);

}



public void initLibrary() {
    PayPal pp = PayPal.getInstance();

    if (pp == null) {  // Test to see if the library is already initialized

        // This main initialization call takes your Context, AppID, and target server
        pp = PayPal.initWithAppID(this, "APP-80W284485P519543T", PayPal.ENV_NONE);

        // Required settings:

        // Set the language for the library
        pp.setLanguage("en_US");

        // Some Optional settings:

        // Sets who pays any transaction fees. Possible values are:
        // FEEPAYER_SENDER, FEEPAYER_PRIMARYRECEIVER, FEEPAYER_EACHRECEIVER, and FEEPAYER_SECONDARYONLY
        pp.setFeesPayer(PayPal.FEEPAYER_EACHRECEIVER);

        // true = transaction requires shipping
        pp.setShippingEnabled(false);


    }

}

@Override
public void onClick(View arg0){

    PayPalButtonClick(arg0);
}

}

可能是因为您没有在super.oncreate()之后设置内容视图,而且由于您正在将活动注册为点击侦听器,因此它会响应屏幕上任何位置的点击,而不仅仅是按钮

编辑

向按钮添加一个点击侦听器,如下所示

paypalButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {  PayPalButtonClick(arg0); }
});

从活动中删除OnClickListener的实现

ViewPostImeInputStage ACTION\u向下
基本上是一种情况,当您的版面被拒绝时,您无法再单击任何可单击的项目。解决方法很简单,只需将版面内容与父项包装在一起

例如:

if you have the xml with format as:
<LinearLayout <---root layout
 ..... contents here
</LinearLayout> <-- root layout end

change to 

<FrameLayout <---root layout
   <LinearLayout <-- parent wrap start
   ...
<!-- your content -->
   </LinearLayout> <-- parent wrap end
</FrameLayout> <-- root layout end
如果您的xml格式为:

谢谢我遇到了问题,因为我从未以编程方式设置视图;仅使用.xml文件。我应该使用“setContentView(R.layout.activity_main);”吗?如何解决onClickListener问题?看起来您不是从xml构建视图,因此在showPaypalButton()末尾执行setContentView(linearLayout)应该可以工作。我将其更改为:
launchPayPalButton.setOnClickListener(new view.onClickListener(){@Override public void onClick(视图arg0){payPalButtonClick(arg0);});
但问题仍然存在。此外,我确实在showPaypalButton方法中设置了contentView。谢谢,但我是以编程方式创建布局的,所以我不使用.xml文件。我认为我不能,因为我使用的是PayPal MPL中的按钮代码。如果是这样,可能你应该从代码中构建这个层次结构,并尝试一下以framelayout为父级!我不明白你的意思。而且,我真的不明白这个错误的原因。我已经阅读了你的回复和你发布的链接,但我找不到任何东西解释为什么会发生这种情况。我切换代码,以便从xml文件中扩展布局,并以编程方式将按钮添加到该布局中.在xml文件中,我将布局包装在父布局中,但问题仍然存在。有什么帮助吗?