2011-11-11 15 views
1

私は以下のコードを実行しています。 2つのスニペットがあります。 1つ目はバンドルを設定する方法、もう1つは取得方法です。何らかの理由でバンドルをチェックするたびにnullとして返されます。Androidのインテントバンドルは常にnullですか?

これが何であるか、私が間違っていたことについてのアドバイスは、非常に高く評価されます。

Intent intent = new Intent(this, com.hom.app.Hom.class); 
     Bundle b = new Bundle(); 
     b.putString("WELL", "yes"); 
     intent.putExtras(b); 
    startActivity(intent); 

取得バンドル:それはnullを返すことになる理由

String well =""; 
    Bundle bun = getIntent().getExtras(); 
    String standard = "yes"; 
    if(bun != null){  
     Log.v("Bundle", "Contains data"); 
     well = bun.getString("WELL"); 
     if(well == null) well = ""; 
     if(well == standard) method(); 
    } 
+0

を使用していませんか? – JoeLallouz

答えて

1

が分からないのですが、あなたのコードは、あなたが=と文字列の比較を行っているため、バンドルが正しくて来ていた場合でも、動作しないでしょう=

このライン:

 if(well == standard) method(); 

0にしてください
 if(well.equals(standard)) method(); 
3

あなたの意図を作成しているときに、そこに追加するだけです。上のコードで誤ったバンドルにアクセスしようとしています。このようなものはうまくいくはずです。 documentationから

Intent intent = new Intent(this, com.hom.app.Hom.class); 
    intent.putExtras("WELL", "yes"); 
    startActivity(intent); 
+0

あなたの文字列の比較についてantlersoftが言っていることも当てはまります。 – JoeLallouz

+0

私は文字列の比較thatsを変更しました。ルーキーの間違いがある!上記のコードを変更しても、バンドルが空であることが返されます。 – Somk

+0

私はこれをいくつかの場所で行いました。解決策を見つけましたか、コードをさらに展開して展開したいですか? – JoeLallouz

1

キーは、たとえば、アプリcom.android.contactsは "com.android.contacts.ShowAll" のような名前を使用することになり、パッケージの接頭辞を含める必要があります。

あなたが今までこの作業を手に入れたので、代わりに、なぜあなたはちょうど

intent.putExtra("WELL", "yes"); 
関連する問題