如何解决在Intent之间传递数据会导致应用“意外关闭”
|| 我试图使用意图在两个活动之间传递一个int值,但我的应用程序不断崩溃。当我注释掉任何数据的传输并仅使用意图时,一切似乎都可以正常工作。我不知道怎么了。 活动1(HeartRateActivity)://Imports
public class HeartRateActivity extends Activity {
/** Called when the activity is first created. */
Button nextActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nextActivity = (Button)findViewById(R.id.nextActivity);
nextActivity.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(HeartRateActivity.this,NextActivity.class);
intent.putExtra(\"age\",2);
startActivity(intent);
}
});
}
}
我的NextActivity.java
package com.heartRate;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class NextActivity extends Activity {
TextView display;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.next);
int age = getIntent().getIntExtra(\"age\",0);
display = (TextView) findViewById(R.id.display);
display.setText(age);
}
}
我的AndroidManifest.xml:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"
package=\"com.heartRate\" android:versionCode=\"1\" android:versionName=\"1.0\">
<uses-sdk android:minSdkVersion=\"7\" />
<application android:icon=\"@drawable/icon\" android:label=\"@string/app_name\">
<activity android:name=\".HeartRateActivity\"
android:label=\"@string/app_name\">
<intent-filter>
<action android:name=\"android.intent.action.MAIN\" />
<category android:name=\"android.intent.category.LAUNCHER\"
/>
</intent-filter>
</activity>
<activity android:name=\".NextActivity\"
android:label=\"@string/app_name\" />
</application>
</manifest>
我的main.xml(由HeartRateActivity使用)
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\"
>
<TextView
android:layout_width=\"fill_parent\"
android:layout_height=\"wrap_content\"
android:text=\"@string/hello\"
/>
<Button android:layout_width=\"wrap_content\" android:layout_height=\"wrap_content\"
android:id=\"@+id/nextActivity\" android:text=\"nextActivity\"></Button>
</LinearLayout>
我的next.xml(由NextActivity使用)是相似的,我不认为这就是问题...:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"vertical\"
android:layout_width=\"fill_parent\"
android:layout_height=\"fill_parent\">
<TextView android:text=\"TextView\" android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\" android:id=\"@+id/display\"></TextView>
</LinearLayout>
希望能帮助您解决此问题!谢谢
解决方法
更换
display.setText(age);
与
display.setText(Integer.toString(age));
如果提供“ 7”作为参数,它将使用它作为资源ID,在这种情况下显然不存在。
, 只是尝试这样做。
display =(TextView)findViewById(R.id.display);
display.setText(Integer.toString(age));
并且肯定会起作用
, 确保您的Id和Intent Destination必须都正确。
然后就从初始化ans开始就放在意图之间。
带放
intent.putExtra(\"age\",Double);
从得到这个。
double d = getIntent().getStringExtra(\"age\");
, 确保next
布局中的R.id.display
是有效的TextView
。
, 只是为了让我们很清楚,您是说要包括...
intent.putExtra(\"age\",2);
在发送活动中,...
int age = getIntent().getIntExtra(\"age\",0);
在接收活动中,应用程序崩溃或出现问题?并且,通过排除这2条语句,应用程序可以正常执行?我很好奇LogCat会显示什么?即使您的应用程序崩溃了,LogCat也会在关闭之前有几个条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。