当我尝试在切换活动时发送带有意图的字符串时,我遇到了一个奇怪的问题。
以下是我在第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
。
这是为什么?
答案 0 :(得分:3)
spinnerSelected
是一个字符串吗?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";