【问题标题】:I need help converting a string to an integer我需要帮助将字符串转换为整数
【发布时间】:2021-07-01 06:04:45
【问题描述】:

美好的一天, 我的 AndroidStudio 项目的 Activity1 中有一个数组适配器。我想有意地将两个特定项目从 ArrayAdapter(位置 1 和 2)转移到 Activity2。 (ArrayAdapter 连接到一个editTextNumber)如果我在TextView 中显示这两个项目,效果会很好。但如果我想将项目转换为 int,应用程序总是会崩溃。我可以以某种方式将“message1”转换为int。为什么呢? 谢谢你的帮助

(活动 1): [...]

@Override
    protected void onCreate(Bundle savedInstanceState) {
ArrayAdapter adapterzeit = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, zeit1);
Intent intent = new Intent(this, Activity2.class);
start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               
                intent.putExtra("EXTRA_MESSAGE1", adapterzeit.getItem(1).toString());
                intent.putExtra("EXTRA_MESSAGE2", adapterzeit.getItem(3).toString());
                startActivity(intent);

            }
        });
}

(活动二):

[...]
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_timer);
        Intent intent = getIntent();

        String message1 = intent.getStringExtra("EXTRA_MESSAGE1");
        String message2 = intent.getStringExtra("EXTRA_MESSAGE2");

        int numberInt = Integer.parseInt(message1);
        int number2 = Integer.parseInt(message2);
 }
}

【问题讨论】:

  • 请将崩溃日志添加到您的问题中。

标签: android-studio android-intent integer android-arrayadapter parseint


【解决方案1】:

您将额外的添加到Intent,如下所示:

intent.putExtra("EXTRA_MESSAGE1", adapterzeit.getItem(1).toString());
            

然后你尝试像这样从Intent 中提取它:

String message1 = intent.getStringExtra("EXTRA_MESSAGE");

您正在为键使用不同的字符串值! EXTRA_MESSAGE != EXTRA_MESSAGE1

这就是为什么你应该总是对这类事情使用常量定义的原因之一,这样你就不会遇到这个问题了。例如在Activity1:

public static final String EXTRA_MESSAGE1 = "EXTRA_MESSAGE1";

intent.putExtra(EXTRA_MESSAGE1, adapterzeit.getItem(1).toString());

然后在Activity2:

String message1 = intent.getStringExtra(Activity1.EXTRA_MESSAGE1);

【讨论】:

  • 您好,谢谢您的回复。我更改了问题的“额外消息”的名称(我忘记将两者都更改为“EXTRA_MESSAGE1”)。在我的项目中,两者都具有相同的名称。所以这不是问题。不过,非常感谢您的回答!
  • 好的,然后编辑您的问题并从 logcat 发布异常消息,我们可以看到问题所在。
猜你喜欢
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多