gpt4 book ai didi

java - 在 Android void 中向公众传递字符串

转载 作者:行者123 更新时间:2023-11-29 03:30:32 24 4
gpt4 key购买 nike

我在下面尝试{}将字符串确认设置为“payment confirmed”。我想将 setDescription() 设置为字符串确认。如何将此字符串从 void onActivityResult 传递到公共(public)类 EndpointsTask?

 @Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
if (confirm != null) {
try {
Log.i("paymentExample", confirm.toJSONObject().toString(4));

String confirmation = "payment confirmed";







} catch (JSONException e) {
Log.e("paymentExample", "an extremely unlikely failure occurred: ", e);
}
}
}
else if (resultCode == Activity.RESULT_CANCELED) {
Log.i("paymentExample", "The user canceled.");
}
else if (resultCode == PaymentActivity.RESULT_PAYMENT_INVALID) {
Log.i("paymentExample", "An invalid payment was submitted. Please see the docs.");
}
}


public class EndpointsTask extends AsyncTask<Context, Integer, Long> {
protected Long doInBackground(Context... contexts) {

Contactinfoendpoint.Builder endpointBuilder = new Contactinfoendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Contactinfoendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();





try {




ContactInfo note = new ContactInfo().setDescription(confirmation);
String noteID = new Date().toString();
note.setId(noteID);

EditText streetName;
streetName = (EditText) findViewById (R.id.streetAddress);
String streetInfo = streetName.getText().toString();
note.setStreetAddress(streetInfo);

EditText firstNameText;
firstNameText = (EditText) findViewById (R.id.firstName);
String firstNameInfo = firstNameText.getText().toString();
note.setNameFirst(firstNameInfo);

EditText lastNameText;
lastNameText = (EditText) findViewById (R.id.lastName);
String lastNameInfo = lastNameText.getText().toString();
note.setNameLast(lastNameInfo);

EditText emailText;
emailText = (EditText) findViewById (R.id.textemail);
String emailInfo = emailText.getText().toString();
note.setEmailAddress(emailInfo);

EditText zipText;
zipText = (EditText) findViewById (R.id.zipCode);
String zipInfo = zipText.getText().toString();
note.setZipCode(zipInfo);

EditText stateText;
stateText = (EditText) findViewById (R.id.state);
String stateInfo = stateText.getText().toString();
note.setState(stateInfo);

EditText phoneText;
phoneText = (EditText) findViewById (R.id.phoneNumber);
String phoneInfo = phoneText.getText().toString();
note.setPhone(phoneInfo);





ContactInfo result = endpoint.insertContactInfo(note).execute();
} catch (IOException e) {
e.printStackTrace();
}
return (long) 0;
}
}

已编辑代码,现在为什么我每次点击按钮时都会在数据存储区 View 中看到两个条目。

   @Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
PaymentConfirmation confirm = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION);
if (confirm != null) {
try {
Log.i("paymentExample", confirm.toJSONObject().toString(4));

String confirmation = "payment confirmed";

EndpointsTask task = new EndpointsTask(confirmation);
task.execute(this);



// TODO: send 'confirm' to your server for verification.
// see https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/
// for more details.

} catch (JSONException e) {
Log.e("paymentExample", "an extremely unlikely failure occurred: ", e);
}
}
}
else if (resultCode == Activity.RESULT_CANCELED) {
Log.i("paymentExample", "The user canceled.");
}
else if (resultCode == PaymentActivity.RESULT_PAYMENT_INVALID) {
Log.i("paymentExample", "An invalid payment was submitted. Please see the docs.");
}
}


public class EndpointsTask extends AsyncTask<Context, Integer, Long> {

String confirmation;
public EndpointsTask(String confirmation ) {
this.confirmation = confirmation;
}


protected Long doInBackground(Context... contexts) {

Contactinfoendpoint.Builder endpointBuilder = new Contactinfoendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Contactinfoendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();





try {




ContactInfo note = new ContactInfo().setDescription(confirmation);
String noteID = new Date().toString();
note.setId(noteID);

EditText streetName;
streetName = (EditText) findViewById (R.id.streetAddress);
String streetInfo = streetName.getText().toString();
note.setStreetAddress(streetInfo);

EditText firstNameText;
firstNameText = (EditText) findViewById (R.id.firstName);
String firstNameInfo = firstNameText.getText().toString();
note.setNameFirst(firstNameInfo);

EditText lastNameText;
lastNameText = (EditText) findViewById (R.id.lastName);
String lastNameInfo = lastNameText.getText().toString();
note.setNameLast(lastNameInfo);

EditText emailText;
emailText = (EditText) findViewById (R.id.textemail);
String emailInfo = emailText.getText().toString();
note.setEmailAddress(emailInfo);

EditText zipText;
zipText = (EditText) findViewById (R.id.zipCode);
String zipInfo = zipText.getText().toString();
note.setZipCode(zipInfo);

EditText stateText;
stateText = (EditText) findViewById (R.id.state);
String stateInfo = stateText.getText().toString();
note.setState(stateInfo);

EditText phoneText;
phoneText = (EditText) findViewById (R.id.phoneNumber);
String phoneInfo = phoneText.getText().toString();
note.setPhone(phoneInfo);





ContactInfo result = endpoint.insertContactInfo(note).execute();
} catch (IOException e) {
e.printStackTrace();
}
return (long) 0;
}
}

@Override
public void onDestroy() {
stopService(new Intent(this, PayPalService.class));
super.onDestroy();
}

最佳答案

您必须像这样在 EndpointsTask AsyncTask 中创建一个构造函数:

    public class EndpointsTask extends AsyncTask<Context, Integer, Long> {

String confirmation;
public RouteAsyncRunnerUI(String confirmation ) {
this.confirmation = confirmation;
}
}

因此您可以调用 EndpointsTask 中的字段确认作为确认,并用它做任何您喜欢的事情。

您可以像这样在 onActivityResult 类中调用此构造函数:

EndpointsTask task = new EndpointsTask(confirmation);
task.execute(this);

关于java - 在 Android void 中向公众传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com