2012-10-05 45 views
0

这是我的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

如果“查询”额外不在Intent存在,那么它将返回null。你应该执行一个空检查,以确保你没有得到nullPointerException

String query = i.getExtras().getString("query")); 

if(query == null) { 
    setQuery(""); 
} 
else { 
    setQuery(query); 
} 
0

如果你想在第一活动收到成效,当你开始第一次活动,你必须启动它startActivityForResult你要用户这个”

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 

} 

也。 回去设置结果作为RESULT_OK或RESULT_CANCEL。在开发者android中查看活动活动。