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

调用 SetImageView 函数时出现错误,该函数是在 OnCreate Activity 之外定义的。除非在 OnCreate 中定义,否则不能调用函数吗?

调用函数时出现 nullPointer 异常。

4

1 回答 1

0

如果您在 Activity 内(以及在 onCreate() 之外)定义 SetImageView (myDbHelper),则可以像您一样调用它。

如果您收到 nullPointer 异常,原因可能是 myDbHelper 仍然为空。检查这是否属实。

顺便说一句,Java 建议我们对方法或变量的第一个字母使用小写字母,而对 Class 使用大写字母。

对不起,我无法评论,因为我没有足够的观点,所以即使我没有所有信息,我也必须直接回答。如果您发布更多代码和 logcat 信息。我会修改我的答案。

于 2012-10-28T22:21:25.387 回答