Как сделать пользовательский и составной объект в Android?

После долгих поисков я нашел отличную статью, в которой описано, как создавать составные объекты. Рецепт прекрасно работает, Eclipse показывает его в пользовательских виджетах. Фантастика.

http://mobile.cs.fsu.edu/creating-a-simple-compound-component-in-android/

Только одна проблема, мне нужно несколько из них. Когда я добавил несколько элементов в макет, идентификатор ресурса для окружающего слоя / объекта наталкивается, как и ожидалось; то есть новый объект получает новые идентификаторы автоматически. Проблема в том, что компоненты внутри основного макета не делают; поэтому, если мне нужно использовать finViewById, чтобы получить представление для внутренних компонентов, все они имеют одинаковый идентификатор. Кто-нибудь знает, как автоматически назначать разные идентификаторы для внутренних компонентов сложного виджета? Я бы попытался назначить их вручную, но Eclipse не показывает внутреннюю структуру составного объекта; так что никакой помощи там нет.

- в ответ на ответ Ксавера

Да, по крайней мере, я так думаю. Если я буду следовать примеру в ссылке, у меня будет что-то похожее; теперь я вижу, что вы говорите, я получил представления, просто добавив findviewbyId в пользовательский класс, так как

public class HorizontalNumberPicker extends LinearLayout {
    public HorizontalNumberPicker(Context context, AttributeSet attrs) {
        super(context, attrs);

        LayoutInflater layoutInflater = (LayoutInflater)context
                  .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        layoutInflater.inflate(R.layout.horizontal_number_picker, this);

    View v = findViewbyID(R.id.btn_minus); // 
    }
}

То, что я не могу понять, и я, скорее всего, ошибаюсь, это как привязать мой код к двум объектам, что следует примеру в ссылке

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent" >

     <example.example.HorizontalNumberPicker
         android:id ="@+id/horizontal_number_picker"
         android:layout_width ="wrap_content"
         android:layout_height ="wrap_content" />

     <example.example.HorizontalNumberPicker2
         android:id ="@+id/horizontal_number_picker"
         android:layout_width ="wrap_content"
         android:layout_height ="wrap_content" />

</FrameLayout>

Откуда знает, что конструктор HorizontalNumberPicker связан с объектом horizontal_number_picker или horizontal_number_picker2?

если в моей деятельности я добавляю

HorizontalNumberPicker obj1 = HorizontalNumberPicker (this,null);

какие ссылки на Horizontal_Number_Picker или Horizontal_Number_Picker2?

Кстати, как я могу передать атрибут?

0 ответов

Другие вопросы по тегам