2013-06-02 41 views
-1

我希望得到一個字符串額外的,但我發現這個錯誤,我不是能找出問題出在哪裏:沒能獲得額外的字符串

這裏是我把我的演員:

Intent i = new Intent(Hoteli.this, ListingDetails.class); 
i.putExtra(hoteli.get(position).getImage(), "listing_image"); 

而且我應得的演員:

Bundle extras = getIntent().getExtras(); 
String imgURL=extras.getString("listing_image"); 
Log.v("--", imgURL); 

這裏是我的logcat輸出:

06-02 13:51:27.561: E/AndroidRuntime(535): FATAL EXCEPTION: main 
06-02 13:51:27.561: E/AndroidRuntime(535): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.biznismap.com/com.biznismap.com.activities.ListingDetails}: java.lang.NullPointerException: println needs a message 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.os.Handler.dispatchMessage(Handler.java:99) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.os.Looper.loop(Looper.java:123) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-02 13:51:27.561: E/AndroidRuntime(535): at java.lang.reflect.Method.invokeNative(Native Method) 
06-02 13:51:27.561: E/AndroidRuntime(535): at java.lang.reflect.Method.invoke(Method.java:521) 
06-02 13:51:27.561: E/AndroidRuntime(535): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
06-02 13:51:27.561: E/AndroidRuntime(535): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
06-02 13:51:27.561: E/AndroidRuntime(535): at dalvik.system.NativeStart.main(Native Method) 
06-02 13:51:27.561: E/AndroidRuntime(535): Caused by: java.lang.NullPointerException: println needs a message 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.util.Log.println_native(Native Method) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.util.Log.v(Log.java:101) 
06-02 13:51:27.561: E/AndroidRuntime(535): at com.biznismap.com.activities.ListingDetails.getExtras(ListingDetails.java:34) 
06-02 13:51:27.561: E/AndroidRuntime(535): at com.biznismap.com.activities.ListingDetails.init(ListingDetails.java:51) 
06-02 13:51:27.561: E/AndroidRuntime(535): at com.biznismap.com.activities.ListingDetails.onCreate(ListingDetails.java:28) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
06-02 13:51:27.561: E/AndroidRuntime(535): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
06-02 13:51:27.561: E/AndroidRuntime(535): ... 11 more 
+0

http://stackoverflow.com/questions/15859445/how-do-you-pass-a-string-from-one -activity到另一個/ 15859488#15859488。檢查這個鏈接。 intent.putExtra( 「鑰匙」,MyString的); //參數1是關鍵 //參數2是值。獲取鍵應該匹配的值String value = extras.getString(「key」); – Raghunandan

+0

你可以發佈println行嗎?或發佈listingdetails的Java代碼? – Metalhead1247

回答

1
Intent i = new Intent(Hoteli.this, ListingDetails.class); 
      i.putExtra(hoteli.get(position).getImage(), "listing_image"); 

應該

Intent i = new Intent(Hoteli.this, ListingDetails.class); 
i.putExtra("listing_image", hoteli.get(position).getImage()); 
//1st paramter is the key 
//2nd parameter is the value 

要獲得

Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
String value = extras.getString("listing_image"); 
//get the value based on the key 
// key should match 
} 
0

你給錯了鍵和值變化的關鍵與價值在你投入額外方法

   i.putExtra("KEY","Value"); 

       i.putExtra("listing_image",hoteli.get(position).getImage()); 
1
i.putExtra(hoteli.get(position).getImage(), "listing_image"); 

第一放慢參數是關鍵不是值:

i.putExtra("listing_image", hoteli.get(position).getImage()); 

而且,由於你是不使用束把你listening_image,但你嵌入它的意圖在裏面你應該取回這樣說:

String imgURL = getIntent(). getStringExtra("listing_image");