Android "редактор макетов" и "пользовательские свойства" - PullRequest
2 голосов
/ 22 июня 2010

Я создаю собственное представление и пытаюсь выяснить, как интегрировать его с редактором макета GUI в Eclipse. Я добавил код ниже для моего конструктора.

 public baseGrid(Context context, AttributeSet attrs) {
  super(context, attrs);

  if (attrs.getAttributeValue(null, "bufferTop") != null)
   bufferTop = Integer.parseInt(attrs.getAttributeValue(null, "bufferTop"));   
  ...

и он работает для чтения этого атрибута xml (... bufferTop="10" ...) из файла макета xml. Однако есть ли способ, чтобы bufferTop отображался в редакторе свойств GUI как свойство, которое я могу установить без редактирования XML?

Спасибо

1 Ответ

2 голосов
/ 22 июня 2010

Попробуйте добавить файл «attrs.xml» в папку «res / values».

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <declare-styleable name="MyAttrs">       
        <attr name="bufferTop"  format="dimension" />
        <attr name="myColor"    format="color" />
        <attr name="myInt"  format="integer" />        
        <attr name="myFloat"    format="float" />  
    </declare-styleable>    
</resources>

Читайте по этому коду:

public baseGrid(Context contxt, AttributeSet attrs) {
 TypedArray a = context.obtainStyledAttributes(attrs,
                R.styleable.MyAttrs);
 bufferTop  = a.getInt(R.styleable.MyAttrs_bufferTop, 10);
 a.recycle();
}

Определите виджеты следующим образом:

<?xml version="1.0" encoding="utf-8"?>
< YOURPACKAGE.BaseGrid
        android:background="@drawable/red"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        app:bufferTop="100"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...