0
public boolean onOptionsItemSelected(MenuItem item)
{
    //check selected menu item
    switch (item.getItemId()) { 
    case R.id.exit:
        this.finish();
        return true;
    case R.id.basic: 
        Difficulty = DIFFICULTY_BASIC;
        Toast.makeText(YogaPosesActivity.this, "Difficulty is Basic", Toast.LENGTH_SHORT).show();
        SetImageView(myDbHelper);
        return true;
    case R.id.advanced: 
        Toast.makeText(YogaPosesActivity.this, "Difficulty is Advanced", Toast.LENGTH_SHORT).show();
        Difficulty = DIFFICULTY_ADVANCED;
        SetImageView(myDbHelper);
        return true;
    case R.id.allPoses:
        Toast.makeText(YogaPosesActivity.this, "All Poses Will Be Displayed", Toast.LENGTH_SHORT).show();
        Difficulty = DIFFICULTY_ADVANCED_AND_BASIC;
        SetImageView(myDbHelper);
        return true;
    default: 
       return super.onOptionsItemSelected(item);
    }
}

OnCreate アクティビティから定義された SetImageView 関数を呼び出すと、エラーが発生します。OnCreate内で定義されていない限り、関数を呼び出すことはできませんか?

関数を呼び出すと、nullPointer 例外が発生します。

4

1 に答える 1

0

アクティビティ内 (および onCreate() の外側) で SetImageView (myDbHelper) を定義する場合は、そのように呼び出しても問題ありません。

nullPointer 例外が発生している場合、myDbHelper がまだ null であることが原因である可能性があります。これが正しいかどうかを確認してください。

ところで Java は、メソッドまたは変数の最初の文字を小文字に、Class に大文字を使用することを提案しています。

申し訳ありませんが、私は十分なポイントを持っていないためコメントできません。すべての情報を持っていなくても、直接回答する必要があります。さらにコードと logcat 情報を投稿する場合。私は私の答えを修正します。

于 2012-10-28T22:21:25.387 に答える