Проблема с пространством имен пользовательского элемента управления Android

Я работал над пользовательским элементом управления для Android, и хотя я пытался сделать то, что предлагается здесь, кажется, что-то, что я делаю неправильно.

Вот мой код, чтобы узнать, может ли кто-нибудь обнаружить проблему:

MyComponent.java

public MyComponent(Context context, AttributeSet attrs) 
{
  super(context);
  TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.MyComponent); 
  CharSequence myId = arr.getString(R.styleable.MyComponent_identifier); 

  if (myId != null) 
  {   
    this.setIdentifier(myId.toString()); 
  }

  Integer cds = arr.getInteger(R.styleable.MyComponent_cd_number, 0);

  if(cds != null)
  {
    this.setCds(cds);
  }

  arr.recycle();
 }

attrs.xml


   
        
       
    
    
 

main.xml



  ...

  

   ...

  

Когда я вставляю это, я получаю следующие ошибки:

error : Не найден идентификатор ресурса для атрибута "cd_number" в пакете "my.test.package" ошибка: не найден идентификатор ресурса для атрибута 'identifier' в пакете 'my.test.package'

Если я изменю свое пространство имен на что-то вроде:

xmlns:bgl="http://schemas.mywhatever.com/apk/res/my.test.package"

... ошибки пройдут, и все запустится, но myId равен нулю а cds равно 0 (значение по умолчанию!) обратно в конструкторе MyComponent.java.

Я бы сказал, что это какая-то очень простая ошибка, но я не смог ее обнаружить, и, поскольку документации по этому вопросу не так много, я решил спросить здесь.

Заранее спасибо!

7
задан Community 23 May 2017 в 12:14
поделиться