gpt4 book ai didi

android - 如何将多个整数发送到新 Activity ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:10 25 4
gpt4 key购买 nike

我有一种方法,我知道这不是现在通过仪式发送它们的最佳方法,但我将它们作为字符串发送并在接收方将它们转换为 Int,问题是当我进行转换时它崩溃了在我的手机上。这是我在发件人方面的内容:

    public void sendMessage(View view) {
// Do something in response to button
Intent intent = new Intent(this, PayTracker.class);
// hourly wage send
EditText editText = (EditText) findViewById(R.id.hourly_wage);
String message1 = editText.getText().toString();
intent.putExtra(MESSAGE_1, message1);
// ot wage send
EditText editText1 = (EditText) findViewById(R.id.ot_wage);
String message2 = editText1.getText().toString();
intent.putExtra(MESSAGE_2, message2);
// hours per day send
EditText editText2 = (EditText) findViewById(R.id.hours_day);
String message3 = editText2.getText().toString();
intent.putExtra(MESSAGE_3, message3);
// start new activity
startActivity(intent);

这就是我收到的:

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pay_tracker);
getActionBar().setDisplayHomeAsUpEnabled(true);
// Receive messages from options page
Intent intent = getIntent();
String message1 = intent.getStringExtra(Options.MESSAGE_1);
String message2 = intent.getStringExtra(Options.MESSAGE_2);
String message3 = intent.getStringExtra(Options.MESSAGE_3);
// convert string to integer
int HW = Integer.valueOf(message1);
int OTW = Integer.valueOf(message2);
int HPD = Integer.valueOf(message3);

我测试了所有内容及其导致应用程序崩溃的转换,我希望有人可以帮助我使其不崩溃,或者给我一种全新的方式将 int 发送到我的第二个 Activity 而不是发送字符串和转换它。谢谢!

============================================= ========================

这是在您的帮助下我的新代码!

发送:

    public void sendMessage(View view) {
// Do something in response to button
Intent intent = new Intent(this, PayTracker.class);
// Gather text from text boxes
EditText editText = (EditText) findViewById(R.id.hourly_wage);
EditText editText1 = (EditText) findViewById(R.id.ot_wage);
EditText editText2 = (EditText) findViewById(R.id.hours_day);
//Create String from text
String message1 = editText.getText().toString();
String message2 = editText1.getText().toString();
String message3 = editText2.getText().toString();
//Convert String to Int
int HW = 0, OTW = 0, HPD = 0;
try{
HW = Integer.valueOf(message1);
OTW = Integer.valueOf(message2);
HPD = Integer.valueOf(message3);
}
catch(NumberFormatException nfe){
//do something else here
//for e.g. initializing default values to your int variables
}
// Send Integers to PayTracker.java
intent.putExtra(MESSAGE_HW, HW);
intent.putExtra(MESSAGE_OTW, OTW);
intent.putExtra(MESSAGE_HPD, HPD);
// start new activity
startActivity(intent);
}

接收方:

    @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pay_tracker);
getActionBar().setDisplayHomeAsUpEnabled(true);
// Receive messages from options page
Intent intent = getIntent();
int HW = intent.getIntExtra(Options.MESSAGE_HW, 0);
int OTW = intent.getIntExtra(Options.MESSAGE_OTW, 0);
int HPD = intent.getIntExtra(Options.MESSAGE_HPD, 0);
// set textview
TextView textView = (TextView) this.findViewById(R.id.yourpay);
textView.setText(String.valueOf(HW));
}

最佳答案

您不需要将 Integers 作为 Strings 传递,以便在接收 Activity 中转换回。 Intents 可以容纳 Integers 以及 Strings

像往常一样简单地添加您的数据:

int foo = 5;
Intent intent = new Intent(this, bar.class);
intent.putExtra("foobar", foo);

然后从接收 Activity 的 Intent 中检索您的 int,如下所示。

Intent intent = getIntent();
int foo = intent.getIntExtra("foobar", 0);

Intents 可以容纳比 Strings 更多的数据。事实上,看看 documentation .您可以看到 Intents 可以容纳 LongsDoublesFloatsParcelables 等。

关于android - 如何将多个整数发送到新 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11671214/

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