我是Java和Android的新手,我正在通过制作一个小程序来练习,这个小程序只是在用户提供利率和年数时计算复利。目前我只是想把这两个值相加,然后看看是否能把答案发送到第二个活动的EditText中。不过由于某些原因,当我此刻运行应用并点击按钮时,android应用崩溃了,我没有足够的经验来了解原因。这里是MainActivity.java文件。
package com.example.compoundedinterest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText num1;
private EditText num2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
num1 = findViewById(R.id.Text1);
num2 = findViewById(R.id.Text2);
}
public void calculateCompoundInterest(View view) {
Intent intent = new Intent(this, Main2Activity.class);
String string1;
string1 = num1.getText().toString();
String string2;
string2 = num2.getText().toString();
double value1;
double value2;
value1 = Double.parseDouble(string1);
value2 = Double.parseDouble(string2);
double answer;
answer = value1 + value2;
startActivity(intent);
}
}
清单文件如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.compoundedinterest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Main2Activity"></activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
有谁知道为什么我的代码会导致崩溃?
你正试图借助意图将控制流从你的当前活动传递到Main2Activity。如果你想把你的 answer
通过这个意图,你必须将这个值添加到意图中,并在Main2Activity的 onCreate
.
把意图看作是一个 Map< T, K>
哪儿 T
将是一种 K
. 例如: Map<String, Int>
将是一个映射,其中键将是一个字符串,值将是一个Int,("one",1)是一个实例,可以在这个 Map
.
要在发送端将值放入Intent中并接收,请参考这个。如何将一个Double值从一个活动检索到另一个活动?
崩溃是很容易找到的Android工作室 ,只是使用的Logcat :