我有一个名为LabelButton的自定义LinearLayout类,其中包含一个按钮和一个TextView。我想让按钮的onclick侦听器删除LabelButton。如何将某些内容从LabelButton对象传递给Activity类,告诉我的主布局删除该LabelButton?
public class LabelButton extends LinearLayout {
private OnClickListener onClick;
public LabelButton(Context context, final String text) {
super(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View labelView = inflater.inflate( R.layout.button_label, this );
TextView textView = (TextView) labelView.findViewById( R.id.textLabelText);
textView.setText( text );
Button button = (Button) labelView.findViewById( R.id.buttonCancelLabel );
onClick = new OnClickListener( ) {
public void onClick( View v ) {
System.out.println("Button: " + text + " clicked");
// do something here to remove this button
}
};
button.setOnClickListener( onClick );
}
@Override
public void onFinishInflate() {
super.onFinishInflate();
}
}
在我的Activity类中,我将LabelButtons添加到这样的列表中...
//labelButtons is a List of LabelButtons
LabelButton labelButton = new LabelButton( getApplicationContext( ),
txtBagLabel.getText( ).toString( ) );
labelButtons.add( labelButton );
最佳答案
将按钮对象设为最终对象,然后可以从OnClickListener
内部引用它,还可以更改其可见性或将其从视图中删除。