0

カレンダーから Create_Event.class に日付を渡す際に問題が発生しています。最初に日付 textView は「テキスト」を表示し、「日付を選択」ボタンをクリックするとカレンダーページが表示され、日付は最初に「テキスト」を表示する textView に渡されるはずです。カレンダー ページから Create_Events ページに日付を渡すようにインテント.putExtra を使用してコーディングしようとしましたが、NullPointerException による強制終了エラーが発生しました。誰でもこの問題で私を助けることができますか? どうもありがとう。

参考までに、コードは次のとおりです。

Calendar.java

@Override
                public void onClick(View view)
                {
                    String date_month_year = (String)view.getTag();
                    selectedDayMonthYearButton.setText(new StringBuilder().append("Selected:").append(date_month_year));

                    Intent k = new Intent(Calendar_Event.this, Create_Events.class);
                    k.putExtra("passdate", date_month_year);
                 startActivity(k);

Create_Event.java

 Intent intent = this.getIntent();
        if(intent == null)
        {
         String strdata = intent.getExtras().getString("passdate");
         TextView txtDate = (TextView) findViewById(R.id.textDate);
         txtDate.setText(strdata);
         }
        else
        {

        }

***もともとif(intent == null)はif(intent != null)だったので、変えればうまくいくと思ったのですがうまくいきません。:P

logcat を更新しました:

09-07 12:03:28.177: E/AndroidRuntime(1033): FATAL EXCEPTION: main
09-07 12:03:28.177: E/AndroidRuntime(1033): java.lang.RuntimeException: Unable to start activity ComponentInfo{main.page/main.page.Create_Events}: java.lang.NullPointerException
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.os.Looper.loop(Looper.java:137)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread.main(ActivityThread.java:4424)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at java.lang.reflect.Method.invokeNative(Native Method)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at java.lang.reflect.Method.invoke(Method.java:511)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at dalvik.system.NativeStart.main(Native Method)
09-07 12:03:28.177: E/AndroidRuntime(1033): Caused by: java.lang.NullPointerException
09-07 12:03:28.177: E/AndroidRuntime(1033):     at main.page.Create_Events.onCreate(Create_Events.java:261)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.Activity.performCreate(Activity.java:4465)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
09-07 12:03:28.177: E/AndroidRuntime(1033):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)

ここに画像の説明を入力 ここに画像の説明を入力

どんな助けでも大歓迎です!再度、感謝します。

更新しました:

 Bundle bundle = getIntent().getExtras();  
    if(bundle != null)
    {

        String date = bundle.getString("date");
        TextView txtDate = (TextView) findViewById(R.id.textDate);
        txtDate.setText(date);          
    }
4

1 に答える 1

0

日付を取得するには、Create_Eventsアクティビティのバンドルを使用します。データを渡す前に、まずデータがnullかどうかを確認する必要があります。

Bundle bundle = getIntent().getExtras();

if(bundle != null)
{
    String date = bundle.getString("passdate");
}

バンドルは通常、さまざまなアクティビティ間でデータを渡すために使用されます。渡す値のタイプによって異なりますが、バンドルはすべてのタイプの値を保持し、新しいアクティビティに渡すことができます。

于 2012-09-07T03:57:55.820 に答える