这是我的onCreate()方法。我试图将一个变量从一个意图传递给这个意图。这很好。当我按下后退按钮并返回到先前更改值的意图时,应用程序崩溃。而且当我改变方向时,应用程序崩溃了。我在pp.getData()方法中得到“Nullpointer异常”。它将null参数传递给函数。我怎么能克服这个?我是否需要添加任何其他详细信息?
public void onCreate(Bundle savedInstanceState) {
// get intent data
Intent i = getIntent();
setQuery(i.getExtras().getString("query"));
Log.v("query:", getQuery());
userquery = getQuery();
super.onCreate(savedInstanceState);
setContentView(R.layout.product_view_layout);
try {
pp = new Parser(userquery);
productData = pp.getData(asynctask, userquery);
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mProductViewPagerAdapter = new ProductViewPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mProductViewPagerAdapter);
}
答案 0 :(得分:0)
如果Intent
中不存在“查询”附加内容,则会返回null
。您应该执行空检查以确保没有获得nullPointerException
。
String query = i.getExtras().getString("query"));
if(query == null) {
setQuery("");
}
else {
setQuery(query);
}
答案 1 :(得分:0)
如果您想在第一个活动中收到结果,您必须使用此“
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
}
当你开始第一个活动时,你必须启动它startActivityForResult。 在后面将结果设置为RESULT_OK或RESULT_CANCEL。看一下开发者android的活动。