2011-08-03 118 views
0

我有一些問題。捆綁額外返回null

在一類 「A」 我的代碼:

Bundle extras = getIntent().getExtras(); 
    if (extras == null){ 
     Log.e("extras", "Extra NULL"); 
    } 
    String arrayWatt = extras.getString("valoresWatt"); 
    String arrayHorario = extras.getString("valoresHorario"); 


Bundle extras = getIntent().getExtras(); --> this is returning NULL` 

該方法將拋出的NullPointerException。這裏有什麼問題?句法?

---編輯---- 所以對不起,我忘了這碼:
(此代碼是從啓動該活動的另一個類)

Intent i = new Intent(); 
     i.setClassName("org.me.android", 
        "org.me.android.GraphViewDemo"); 
     i.putExtra("valoresWatt", watt); 
     i.putExtra("valoresHorario", hora); 
     startActivity(i); 
+0

對不起,我忘了一段源代碼 – Shermano

回答

0

對於NPE崩潰

Bundle extras = getIntent().getExtras(); 
if (extras == null){ 
    Log.e("extras", "Extra NULL"); 
} else { 
    String arrayWatt = extras.getString("valoresWatt"); 
    String arrayHorario = extras.getString("valoresHorario"); 
} 

而不是

i.putExtra("valoresWatt", watt); 
i.putExtra("valoresHorario", hora); 

嘗試

i.putStringArrayListExtra("valoresWatt", watt); 
i.putStringArrayListExtra("valoresHorario", hora); 

如果它是字符串的數組列表。

+1

是的,你說得對,但是臨時演員總是空!我不想要這個,我想趕上字符串 – Shermano

1

如果你想要得到的演員,這是我會做什麼:

Intent i = getIntent(); 
String arrayWatt = i.getStringExtra("valoresWatt"); 
String arrayHorario = i.getStringExtra("valoresHorario"); 
+1

仍然崩潰! – Shermano

+0

我不知道發生了什麼事,我已經在其他時間做了,並且沒有問題 – Shermano

1

哪裏是您列出了獲取代碼Extras在什麼位置?你是否覆蓋onCreate方法?如果是這樣,請確保在嘗試使用Extras之前致電super.onCreate(bundleVariableName)。所以......

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.myLayout); 
    // ... 
    Bundle data = getIntent().getExtras(); 
    if (data != null) { 
     // should actually verify that the key exists, so: 
     // if (data.containsKey("valoresWatt")) { 
     // ... do something with the value 
     String watt = data.getString("valoresWatt"); 
     String horario = data.getString("valoresHorario"); 
    } 
    // ... 
} 
1

在你的原代碼,你說這第一線返回null:

Bundle extras = getIntent().getExtras(); // --> this is returning NULL 

Android docs for Intent,似乎getExtras()方法,如果返回null沒有額外功能已添加。

在這種情況下,您可能需要通過直接調用Intent對象上的.putExtra(key,value)來添加字符串附加內容,而不是在它的額外映射表中,該映射尚不存在。