バンドルをあるアクティビティから別のアクティビティに送信しようとしています。受信アクティビティでバンドルをロードすると、すべての情報がnullと思われます。バンドルを別のアクティビティに送信
アクティビティA(バンドルを送信):
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Intent intent = new Intent(HotelsActivity.this, EditHotelActivity.class);
Bundle b = new Bundle();
b = toBundle(app.getHotelList().get(position));
intent.putExtra("Hotel Bundle", b);
startActivity(intent);
}
});
toBundle方法はちょうど束にオブジェクトから文字列を追加して、ここでいくつかのコードです。私はこのメソッドにロギングステートメントを入れて、バンドルは絶対にnullではありません。
活動B(バンドルをロードする):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView (R.layout.edit_hotel);
setTitleFromActivityLabel (R.id.title_text);
// Retrieve sent bundle
Bundle b = this.getIntent().getExtras();
String hotelName = b.getString("hotelname");
if (hotelName == null)
MyLog.i(TAG, "IT IS NULL");
}
loggin文は、その後、何らかの理由でhotelNameがヌルであるが、それは間違いなく正しいキーであるため、 "ITはNULL IS" 出力します。
誰でも助けてもらえますか?
toBundle方法:
String hotelName = b.getString("hotelname");
更新:
public Bundle toBundle(HotelItem hotel) {
Bundle b = new Bundle();
b.putString("hotelname",hotel.getHotelName());
b.putString("hotel address", hotel.getHotelAddress());
b.putString("hotel telephone", hotel.getHotelTelephone());
b.putString("hotel website", hotel.getHotelWebsite());
return b;
}
こんにちは、私はそれを試みましたが、まだnullです。私は思ったb.getString( "hotelname");バンドルからキーホテル名を得ましたか?元の投稿にtoBundleメソッドを追加しました。 – sam
OK、今度は、すべての文字列 'hotelname'を大文字ではなく、空白なしで、' Hotel Name' –