Ошибка MySql 150 - Внешние ключи

Основная причина: sendBroadcast - это метод класса Context, потому что вы вызываете его в классе Adapter, поэтому компилятор показывает ошибку «sendBroadcast не может быть решена» ».

Решение: Получить контекст из экземпляра представления, затем вызвать метод sendBroadcast.

holder.constraintLayout.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //Store songList and songIndex in mSharedPreferences
        storageUtil.storeSong(Main.musicList);
        storageUtil.storeSongIndex(holder.getAdapterPosition());

        // Obtain context from view instance.
        Context context = v.getContext();

        //Send media with BroadcastReceiver
        Intent broadCastReceiverIntent = new Intent(Constants.ACTIONS.BROADCAST_PlAY_NEW_SONG);
        context.sendBroadcast(broadCastReceiverIntent);

        Intent broadCastReceiverIntentUpdateSong = new Intent(Constants.ACTIONS.BROADCAST_UPDATE_SONG);
        context.sendBroadcast(broadCastReceiverIntentUpdateSong);
    }
});

17
задан Bill Karwin 28 December 2017 в 19:02
поделиться

1 ответ

Из ЗАРУБЕЖНЫЙ КЛЮЧ Ограничения

Если вы воссоздаете таблицу, которая была упал, оно должно иметь определение соответствует внешнему ключу ограничения, ссылающиеся на это. Это должно иметь правильные имена и типы столбцов, и он должен иметь индексы на ссылочные ключи, как указано ранее. Если они не удовлетворены, MySQL возвращает ошибка номер 1005 и относится к ошибке 150 в сообщении об ошибке.

Мое подозрение заключается в том, что вы не создали foo как InnoDB, как все остальное выглядит хорошо.

Редактировать: из того же page -

Обе таблицы должны быть таблицами InnoDB, и они не должны быть временными таблицами.

30
ответ дан 30 November 2019 в 10:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: