我有一个名为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内部引用它,还可以更改其可见性或将其从视图中删除。

10-08 18:34