Неизвестный атрибут onItemSelected / onCheckedChanged - PullRequest
0 голосов
/ 16 октября 2019

Я создал SwitchCompat и добавил android:onCheckedChanged. все работает нормально, но Android Studio помечает этот атрибут как предупреждение с описанием.

Неизвестный атрибут android: onCheckedChanged.

Тот же самый случай с AppCompatSpinner с android:onItemSelected.

Почему Android Studio отображает это предупреждение? Моя версия Android Studio 3.5.1

снимок экрана с предупреждением

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Это потому, что SwitchCompat на самом деле не имеет такого атрибута (см. документация ), поэтому вы не можете назначить слушателя в XML. Попробуйте вместо этого реализовать onClickListener или назначить прослушиватель OnCheckedChanged вне XML, например:

  final SwitchCompat switchButton = (SwitchCompat) view.findViewById(R.id.switch_button);
  switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
      //do stuff
    }
  });
0 голосов
/ 16 октября 2019

Вот код для моего CheckBox. Попробуйте что-то подобное в своем java-файле и т. Д., Запомните, чтобы вызвать и присвоить переменную флажка или когда-либо

Ваша проблема в том, что AS не распознаетАтрибут В XML попробуйте Hardcoding ifchecked и т. д. на стороне кодирования, так как вы вызываете атрибут AS обнаруживает это, но это «настраиваемый» атрибут, если вы понимаете, что я говорю

 CheckBox chk=findViewById(R.id.chk1);
            if (chk.isChecked()) {
                Uri.Builder builder=new Uri.Builder();
                builder.scheme("https")
                        .authority("www.smartpractice.co.za")
                        .appendPath("files-upload-ruben.asp")
                        .appendQueryParameter("MyForm", "Yes")
                        .appendQueryParameter("ClientID", clientId)
                        .appendQueryParameter("Username", email)
                        .appendQueryParameter("Pwd", pwd)
                        .appendQueryParameter("Category", Item)
                        .appendQueryParameter("ClientName", Item2)
                        .appendQueryParameter("NoEmail", "Yes");
                myURL=builder.build().toString();
            } else {
                Uri.Builder builder4=new Uri.Builder();
                builder4.scheme("https")
                        .authority("URL)
                        .appendPath("CheckBox chk=findViewById(R.id.chk1);
            if (chk.isChecked()) {
                Uri.Builder builder=new Uri.Builder();
                builder.scheme("https")
                        .authority("www.FakeSite.co.za")
                        .appendPath("ServerFile.asp")
                        .appendQueryParameter("MyForm", "Yes")
                        .appendQueryParameter("ClientID", clientId)
                        .appendQueryParameter("Username", email)
                        .appendQueryParameter("Pwd", pwd)
                        .appendQueryParameter("Category", Item)
                        .appendQueryParameter("ClientName", Item2)
                        .appendQueryParameter("NoEmail", "Yes");
                myURL=builder.build().toString();
            } else {
                Uri.Builder builder4=new Uri.Builder();
                builder4.scheme("https")
                        .authority("www.fakeSite.co.za")
                        .appendPath("ServerFile.asp")
                        .appendQueryParameter("MyForm", "Yes")
                        .appendQueryParameter("ClientID", clientId)
                        .appendQueryParameter("Username", email)
                        .appendQueryParameter("Pwd", pwd)
                        .appendQueryParameter("Category", Item)
                        .appendQueryParameter("ClientName", Item2)
                        .appendQueryParameter("NoEmail", "");
                myURL=builder4.build().toString();")
                        .appendQueryParameter("MyForm", "Yes")
                        .appendQueryParameter("ClientID", clientId)
                        .appendQueryParameter("Username", email)
                        .appendQueryParameter("Pwd", pwd)
                    .appendQueryParameter("Category", Item)
                    .appendQueryParameter("ClientName", Item2)
                    .appendQueryParameter("NoEmail", "");
            myURL=builder4.build().toString();
...