我将PayPal SDK添加到了我的应用程序中,但是出现了一个问题。
当我想查看付款明细时,该应用程序将崩溃。

    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.TextView;
    import android.widget.Toast;

    import org.json.JSONException;
    import org.json.JSONObject;

 public class PaymentDeatils extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_payment_deatils);

    //Getting Intent
    Intent intent = getIntent();

    try {
         JSONObject jsonDetails = new
    JSONObject(intent.getStringExtra("PaymentDetails"));
         showDetails(jsonDetails.getJSONObject("response"),
    intent.getStringExtra("PaymentAmount"));

    } catch (JSONException e) {
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

private void showDetails(JSONObject jsonDetails, String paymentAmount)
throws JSONException {
    //Views
    TextView txtId = (TextView) findViewById(R.id.txtId);
    TextView textViewStatus= (TextView) findViewById(R.id.txtAnount);
    TextView txtStatus = (TextView) findViewById(R.id.txtStatus);

    //Showing the details from json object
    txtId .setText(jsonDetails.getString("id"));
    textViewStatus.setText(jsonDetails.getString("state"));
    txtStatus.setText(paymentAmount);
}
}


我这里有问题

   JSONObject jsonDetails = new JSONObject(intent.getStringExtra("PaymentDetails"));


intent.getStringExtra(“ PaymentDetails”)可能为null。我该如何解决?

控制台错误。

  java.lang.NullPointerException: Attempt to invoke virtual method 'int
  java.lang.String.length()' on a null object reference

最佳答案

正如Abdul所说,我们还需要查看发送活动。此外,getIntent.getStringExtra还支持在键后设置默认值,这至少将减少可能发生的null异常崩溃。

关于android - (intent.getStringExtra(“PaymentDetails”)为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48169398/

10-11 11:37