myIntent.getStringExtra返回null?

时间:2011-03-27 17:56:43

标签: android android-intent

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

以下是我在第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

这是为什么?

3 个答案:

答案 0 :(得分:3)

spinnerSelected是一个字符串吗?


From the Javadoc for Intent

public String getStringExtra(String name)
     

自: API级别1

     

说明:从意图中检索扩展数据。

     

<强>参数:

     

name 所需项目的名称。

     

返回:以前使用putExtra()添加的项的值,如果未找到String值,则返回null。


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

public int getIntExtra(String name, int defaultValue)

答案 1 :(得分:3)

尝试将.ToString()添加到myIntent.putExtra("searchx", spinnerselected);,使其为myIntent.putExtra("searchx", spinnerselected.ToString());这对我来说总是有效

答案 2 :(得分:0)

此代码应该有效:

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