У меня проблема с пользовательским LinearLayout, который я создаю для приложения.По сути, LinearLayout содержит элементы, каждый элемент является горизонтальным LinearLayout, который содержит TextView и Button.LinearLayout заполняется правильно, однако, когда я нажимаю кнопку (фон которой имеет пользовательский фон: селектор), происходит непредвиденное поведение.То, что происходит, - то, что кнопка изменяется, появляется только на последнем элементе LinearLayout, который не имеет никакого смысла.
Код, который заполняет LinearLayout, выглядит следующим образом:
View template = null;
if (items.size() > 0) {
for (int i = 0; i < items.size(); i++) {
template = inflate(getContext(), R.layout.views_custom_list_item, null);
template.setBackgroundDrawable(getProperBackgroundDrawable(i, items.size() - 1));
TextView text = (TextView)template.findViewById(R.id.custom_list_text);
text.setText(items.get(i));
Button button = (Button)template.findViewById(R.id.custom_list_button);
button.setId(i);
button.setBackgroundDrawable(backgroundButton);
button.setOnClickListener(callListener);
addView(template);
template = null;
}
}
Я надуваю XML, который содержит макет для каждого элемента, а затем я соответствующим образом устанавливаю свойства.Весь этот код содержится в пользовательском классе, который наследуется от LinearLayout.Вы знаете, где проблема?спасибо
Это мое мнение,
И не важно, какой предмет я нажимаю, я получаю это,
Это элемент XML:
`
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/custom_list_text"
android:textSize="15sp"
android:textColor="@color/black"
android:paddingLeft="5dip" android:paddingRight="5dip"
android:layout_weight="1"
android:gravity="left" />
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/custom_list_button"/>
`
XML на основном макете:
<com.example.views.CustomLayoutView android:layout_width="fill_parent" android:layout_height="wrap_content"
android:id="@+id/custom_phone_directory"
android:layout_margin="5dip"
xx:background_single="@drawable/button_complete"
xx:background_top="@drawable/button_top"
xx:background_middle="@drawable/button_middle"
xx:background_bottom="@drawable/button_bottom"
xx:button_background="@drawable/button_phone_selector" />
</LinearLayout>