0

インテントを使用して 2 つのアクティビティ間で 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>

この問題の解決にご協力いただければ幸いです。ありがとうございました

4

5 に答える 5

3

交換

display.setText(age);

display.setText(Integer.toString(age));

をパラメーターとして指定するintと、リソース ID として使用されますが、この場合は明らかに存在しません。

于 2011-06-18T03:45:17.243 に答える
1

このようにしてみてください。

display = (TextView) findViewById(R.id.display);

display.setText(Integer.toString(age));

そしてきっとうまくいく

于 2011-06-18T05:12:44.573 に答える
1

Id と Intent Destination がすべて OK であることを確認してください。

次に、initialize ans start からのインテントの間に入れるだけです。置くと

intent.putExtra("age", Double);

からこれを入手してください。

double d = getIntent().getStringExtra("age");
于 2011-06-18T05:22:00.747 に答える
0

がレイアウトR.id.displayで有効であることを確認してTextViewください。next

于 2011-06-18T03:40:58.387 に答える
-1

明確にするために、あなたが言っているのは...

intent.putExtra("age", 2); 

送信アクティビティで、そして...

int age = getIntent().getIntExtra("age", 0);

受信アクティビティで、アプリケーションがクラッシュしたり、問題が発生したりしますか? そして、これらの 2 つのステートメントを除外することで、アプリケーションは正常に実行されますか? LogCat が何を示しているのか興味がありますか? アプリケーションがクラッシュしている場合でも、LogCat には、閉じる直前に何が起こっていたかに関するいくつかのエントリがあります。

于 2011-06-18T03:40:32.767 に答える