Я создал пользовательский кнопочный элемент управления в андроиде с одним левым изображением, изображением правой стрелки и текстом в середине. Я хочу сделать изображение правой стрелки на стрелке вниз при нажатии на нее. Для этого я написал в пользовательской кнопке классПользовательская кнопка не работает в android
public class ButtonWithTwoImagesAndOneText extends LinearLayout{
private ImageView _image, _arrow;
private TextView _text;
private View _viewupper, _viewlower, _viewlowersmall;
public ButtonWithTwoImagesAndOneText(Context context,AttributeSet attrs) {
super(context, attrs, 0);
Init(context);
RelativeLayout nameLayout= (RelativeLayout)findViewById(R.id.lytcontrollayout);
nameLayout.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
_arrow.setImageDrawable(getResources().getDrawable(R.drawable.arrowdown));
}
});
}
Я использовал эту кнопку управления в макете, подобном этому.
<com.example.Controls.ButtonWithTwoImagesAndOneText
android:id="@+id/btnaccountsettings"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</com.example.Controls.ButtonWithTwoImagesAndOneText>
и в классе этого макета я добавил кнопку click для настроек btnaccount.
btnAccountSettings.setOnClickListener(new RelativeLayout.OnClickListener() {
@Override
public void onClick(View arg0) {
Toast.makeText(Settings.this, "Account Settings", Toast.LENGTH_SHORT).show();
}
});
Теперь при запуске приложения происходит стрелка вниз, но тост не работает. Пожалуйста, помогите решить эту проблему.
Вы можете использовать xml 'android: onClick' успешно? – Doomsknight
Вы не можете зарегистрировать два onClickListener для кнопки! –
попытайтесь написать this.setOnClickListener вместо nameLayout.setOnClickListener – meh