Ошибка unreachable statement

432
13 марта 2017, 08:59

Прохожу урок на StartAndroid, возникла ошибка в коде, не могу понять как исправить, нужный класс импортирован, всё переписал как в примере, помогите разобраться. Ошибка unreachable statement на строке:

AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();

код:

public class MainActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor> {
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter simpleCursorAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        db = new DB(this);
        db.open();
        String[] from = new String[]{DB.COLUMN_IMG, DB.COLUMN_TEXT};
        int[] to = new int[]{R.id.ivImg, R.id.tvText};
        simpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.item, null, from, to, 0);
        lvData = (ListView) findViewById(R.id.lvData);
        lvData.setAdapter(simpleCursorAdapter);
        registerForContextMenu(lvData);
        getSupportLoaderManager().initLoader(0, null, this);

    }
    public void onButtonClick(View view) {
        db.addRec("sometext " + (simpleCursorAdapter.getCount() + 1), R.drawable.alligator);
        getSupportLoaderManager().getLoader(0).forceLoad();
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        return super.onContextItemSelected(item);
        if (item.getItemId() == CM_DELETE_ID) {
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
            db.delRec(acmi.id);
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        db.close();
    }
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle args) {
        return new MyCursorLoader(this, db);
    }
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
        simpleCursorAdapter.swapCursor(data);
    }
    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
    }
    static class MyCursorLoader extends CursorLoader {
        DB db;
        public MyCursorLoader(Context context, DB db) {
            super(context);
            this.db = db;
        }
        @Override
        public Cursor loadInBackground() {
            Cursor cursor = db.getAllData();
            try {
                Thread.sleep(18000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return cursor;
        }
    }
}
Answer 1

unreachable statement - недостижимый код. Ваш метод onContextItemSelected() начинается с оператора return и дальнейший код этого метода будет не доступен и никогда не выполнится, о чем вы и получаете ошибку от компилятора, нужно удалить либо первый return, либо код после него, если его выполнение не требуется:

@Override
public boolean onContextItemSelected(MenuItem item) {
    if (item.getItemId() == CM_DELETE_ID) {
        AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item.getMenuInfo();
        db.delRec(acmi.id);
        getSupportLoaderManager().getLoader(0).forceLoad();
        return true;
    }
    return super.onContextItemSelected(item);
}
READ ALSO
Браузер уменьшает толщину border?

Браузер уменьшает толщину border?

Здравствуйте! У меня такая проблема: браузер Chrome отображает ширину border у html элементов не такую, как задана в стилях, а уменьшенную в 08 раз

330
Как задать константу в padding ссылки

Как задать константу в padding ссылки

У меня есть константа объявленная как

364
Как изменить input по кнопке

Как изменить input по кнопке

У меня есть страница html, на ней кнопка submit

405
Не отображается мобильная версия сайта

Не отображается мобильная версия сайта

Сайт перестал отображаться корректно на мобильных устройствахНа мобильном например хром предлагает адаптировать страницу

444