无法从onOptionsItemSelected内调用函数

时间:2012-10-28 21:09:27

标签: android options-menu

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异常。

1 个答案:

答案 0 :(得分:0)

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

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

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

抱歉,我无法发表评论,因为我没有足够的意见,所以我必须直接回答,即使我没有所有的信息。如果您发布更多代码和logcat信息。我会修改我的答案。

相关问题