Android - 本地变量tst可能尚未初始化

Chi*_*ito 3 android

我的工作代码是

@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) 
    {
        Toast tst;

        if (item.getItemId() == R.id.menuVada) {
            tst = Toast.makeText(Main.this, " Vada ", 2000);

        } else {
            tst = Toast.makeText(Main.this, "Menu Title: " + item.getTitle()
                    + " Menu ID: " + item.getItemId(), 2000);
        }
        tst.setGravity(Gravity.CENTER, 0, 0);
        tst.show();

        return true;

    }
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用

@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) 
    {
        Toast tst;

        if (item.getItemId() == R.id.menuVada) {
            //tst = Toast.makeText(Main.this, " Vada ", 2000);

        } else {
            tst = Toast.makeText(Main.this, "Menu Title: " + item.getTitle()
                    + " Menu ID: " + item.getItemId(), 2000);
        }
        tst.setGravity(Gravity.CENTER, 0, 0);
        tst.show();

        return true;

    }
Run Code Online (Sandbox Code Playgroud)

为什么不工作我的代码?

请帮忙.

最好的祝福

She*_*tib 7

怎么(item.getItemId() == R.id.menuVada)办?

只需初始化tstnull.然后检查是否tst!=null显示吐司

@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) 
    {
        Toast tst = null;

        if (item.getItemId() == R.id.menuVada) {
            //tst = Toast.makeText(Main.this, " Vada ", 2000);

        } else {
            tst = Toast.makeText(Main.this, "Menu Title: " + item.getTitle()
                    + " Menu ID: " + item.getItemId(), 2000);
        }
        if(tst!=null){
            tst.setGravity(Gravity.CENTER, 0, 0);
            tst.show();
        }

        return true;

    }
Run Code Online (Sandbox Code Playgroud)