myIntent.getStringExtra返回null?

当我尝试在切换活动时发送带有意图的字符串时,我遇到了一个奇怪的问题。

这是我在第1课中所做的:

Intent myIntent = new Intent(SearchText.this, Search.class); myIntent.putExtra("searchx", spinnerselected); myIntent.putExtra("SearchText", input); startActivity(myIntent); 

第2类:

 Intent myIntent = getIntent(); searchText=myIntent.getStringExtra("SearchText"); spinnerselectednumber=Integer.parseInt(myIntent.getStringExtra("searchx")); 

并且在第二类中使用调试器,它清楚地表明searchx中有一个值。

虽然myIntent.getStringExtra("searchx")返回null

为什么是这样?

spinnerSelected是一个字符串?


来自Javadoc for Intent

 public String getStringExtra(String name) 

自: API级别1

描述:从意图中检索扩展数据。

参数:

name所需项目的名称。

返回:先前使用putExtra()添加的项的值,如果未findString值,则返回null。


似乎有很多方法可以检索“额外内容” – 无论spinnerSelected的types是spinnerSelected ,尝试使用适当的方法检索它。 例如,如果它是一个int:

 public int getIntExtra(String name, int defaultValue) 

尝试将.ToString()添加到myIntent.putExtra("searchx", spinnerselected); 所以它是myIntent.putExtra("searchx", spinnerselected.ToString()); 这对我来说总是有用的

这段代码应该有效:

  Bundle extras = getIntent().getExtras(); return extras != null ? extras.getString("searchx") : "nothing passed in";