0

这是我的 onCreate() 方法。我正在尝试将变量从一个意图传递给这个意图。这很好用。当我按下后退按钮并返回到以前的意图来更改值时,应用程序就会崩溃。而且当我改变方向时,应用程序崩溃。我在 pp.getData() 方法中收到“Nullpointer 异常”。它将空参数传递给函数。我该如何克服呢?我需要添加任何其他详细信息吗?

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);

}
4

2 回答 2

0

如果“查询”额外内容不存在,Intent那么它将返回null. 您应该执行空检查以确保您没有得到nullPointerExceptions。

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

if(query == null) {
    setQuery("");
}
else {
    setQuery(query);
}
于 2012-10-05T15:09:16.150 回答
0

如果你想在第一个活动中收到结果,你必须使用这个"

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

 }

同样,当您开始第一个活动时,您必须启动它 startActivityForResult。在后面将结果设置为 RESULT_OK 或 RESULT_CANCEL。查看开发人员 android 上的活动。

于 2012-10-05T15:14:55.020 回答