5

私が抱えている問題は、起動時にアプリがクラッシュし続けることです.2つのアクティビティがあります. アクティビティ A とアクティビティ B。アプリはアクティビティ A で起動しますが、アクティビティ B でバンドルを作成し、それをアクティビティ A に送信しています。起動時にバンドルが空または null であるためクラッシュします。これを修正するにはどうすればよいですか? ありがとう。

これは、作成時のアクティビティ A (起動アクティビティ) にあります。

    Bundle extras = getIntent().getExtras();
    Title = extras.getString("Title");
    Description = extras.getString("Description");
    Price = extras.getString("Price");
    Availability = extras.getString("Availability");

次に、アクティビティ B でバンドルを作成します。

     Intent intent = new Intent(B.this, A.class);
                Bundle extras = new Bundle();
                extras.putString("Title", PostTitle);
                extras.putString("Description", PostDescription);
                extras.putString("Price", PostPrice);
                extras.putString("Availability", PostAvail);
                intent.putExtras(extras);
                startActivity(intent);
4

1 に答える 1

10

次のことをお勧めします。

A. インテントからバンドルを使用する:

Intent pIntent = new Intent(this, JustaClass.class);
Bundle extras = pIntent.getExtras();
extras.putString(key, value); 

B. 新しいバンドルを作成します。

Intent pIntent = new Intent(this, JustaClass.class);
Bundle pBundle = new Bundle();
pBundle.putString(key, value);
mIntent.putExtras(pBundle);

C. インテントの putExtra() メソッドを使用します。

Intent pIntent = new Intent(this, JustaClass.class);
pIntent.putExtra(key, value);

最後に、起動されたアクティビティで、それらを読み進めることができます:

String value = getIntent().getExtras().getString(key)

渡す例として Strings を使用しました。 BundleIntentを参照してください。

于 2016-01-04T21:29:28.787 に答える