На данный момент я бы посоветовал вам обратиться к документации по функции, которую вы используете. просто игнорируйте имена переменных. ... меньшие имена могут помочь уменьшить размер кода и улучшить читабельность в некоторых случаях, если четко указывается назначение переменной.

я позволяю Android Studio генерировать метод переопределения, он генерирует метод со странными именами параметров.

Например, согласно документации onCheckedChanged должен выглядеть так:

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){}

но я получил

public void onCheckedChanged(CompoundButton compoundButton, boolean b){}

или onDateSet в DatePickerDialog я получил:

onDateSet(DatePicker datePicker, int i, int i1, int i2)

вместо

onDateSet(DatePicker view, int year, int month, int dayOfMonth)

Я установил Android SDK в проекте и установил Sources for Android 27.

Есть идеи?

Спасибо

 Elsunhoty23 окт. 2018 г., 14:33
Да, вы правы
 Elsunhoty11 мар. 2018 г., 12:26
Этоs variable Names , does itСуть вопроса ?!
 Jaydip Kalkani11 мар. 2018 г., 12:35
возможный дубликатэто
 Vucko23 окт. 2018 г., 01:18
@Elsunhoty это действительно имеет значение. Если вы внимательно посмотрите на примерonDateSet, вы можете видеть, что 3 целых числа означаютничего в то время как значимые имена точно говорят вам, что представляет собой каждый параметр. Мне очень любопытно найти решение для этого, потому что у меня какое-то время это беспокоило меня! Я знаю, что у некоторых методов были хорошие имена параметров, и они просто останавливались.

Ответы на вопрос(3)

это не влияет на код. Вы можете заменить их на любые имена, которые вы хотите.

+1 для android studio, скорее, должен реализовывать правильные имена переменных, чтобы мы могли получить общее представление о назначении этой переменной, не просматривая документацию.

На данный момент я бы посоветовал вам обратиться к документации по функции, которую вы используете. просто игнорируйте имена переменных. ... меньшие имена могут помочь уменьшить размер кода и улучшить читабельность в некоторых случаях, если четко указывается назначение переменной.

compileSdk ты используешь. Для установки источников выполните следующие действия:

проверьте версию вашего проекта compileSdk. (с уровня приложенияbuild.gradle файл). Как вы можете видеть на картинке ниже, моя версия compileSdk - 26. Итак, я должен установить исходные коды для платформы 26.

2. Зайдите в менеджер SDK и проверьте вкладку Платформы SDK.show package details опция, если не отмечена Затем установите исходные коды для вашей версии compileSdk (в моем случае это 26). Вот и все. Теперь вы получите соответствующие параметры имени.

compileSdkVersion который определен в вашемbuild.gradle файл. Вы должны установитьSources for Android SDK для API, который вы использовали в качествеcompileSdkVersion, Поэтому попробуйте установить исходники версии, равнойcompileSdkVersion в SDK Manager.

Я установилcompileSdkVersion 28 вbuild.gradle файл. Вот результат до и после установки исходных кодов версии 28 (Примечание. После этого перезапустите AndroidStudio):

До:

val textWatcher = object: TextWatcher {

    override fun afterTextChanged(p0: Editable?) {
    }

    override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
    }

    override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
    }
}

После:

val textWatcher = object: TextWatcher {

    override fun afterTextChanged(s: Editable?) {
    }

    override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
    }

    override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
    }
}
ОБНОВЛЕНИЕ: 23.10.2008

Проблема оAppCompat-v28 библиотеки, такие какRecyclerView класс, происходит от ихaar артефакты. Если вы используете библиотеки версии 27.1.1, проблема исчезнет. Не имеет значения, какой дистрибутив версии 28 вы используете (например, 28.0.0, 28.0.0-alpha1, 28.0.0-alpha3, 28.0.0-rc1, 28.0.0-rc2 и т. Д.). версии 28, имена параметров для абстрактных методов запутаны.

public abstract static class Adapter<VH extends RecyclerView.ViewHolder> {

    public Adapter() {
    }

    @NonNull
    public abstract VH onCreateViewHolder(@NonNull ViewGroup var1, int var2);

    public abstract void onBindViewHolder(@NonNull VH var1, int var2);

    ...
}

Таким образом, кажется, что нет способа решить, пока это не будет исправлено в следующих дистрибутивах.

 Rahul Khurana22 окт. 2018 г., 06:41
Да, приведенный выше пример также работает в моем случае, но когда я пытаюсь создатьАдаптер RecyclerView и переопределитьonCreateViewHolder (p0: ViewGroup, p1: Int) Метод, он по-прежнему показывает неправильные аргументы имена переменных.
 MilaDroid17 нояб. 2018 г., 09:22
Такой отличный ответ!
 Rahul Khurana24 окт. 2018 г., 11:49
спасибо за обновление :) Надеюсь, команда разработчиков Android заметит и исправит это
 pratham kesarkar29 янв. 2019 г., 09:46
Спасибо, что сэкономили мое время. Я пытался понять, почему мойFirebaseMessagingService имеет такое странное имя на переопределение методов.

Ваш ответ на вопрос