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

}
4

2 に答える 2

0

「クエリ」エクストラが存在しない場合は、Intentが返されnullます。sを取得しないように、null チェックを実行する必要がありますnullPointerException

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 として設定します。開発者アンドロイドの活動を見てください。

于 2012-10-05T15:14:55.020 に答える