1

4〜5個のサブビューを保持するRelativeLayoutを使用したxmlレイアウトがあります。カスタムonclicklistnerを使用して、このxmlレイアウトに基づくカスタムViewクラスが必要です。

私は、RelativeLayoutを拡張し、Viewをメンバーとして持つことにより、カスタムクラスを試してみました。そして、コンストラクターでは、レイアウトを膨らませて、ビューメンバーに割り当てています。しかし、私はクラス自体を私の膨らんだビューオブジェクトに似せたいと思っています。(私は意味がありましたか!!)

私の現在のコードは以下のようになっています:

public class CustomItemView extends RelativeLayout {
  private Context context;
  private View itemView;

  public CustomItemView(Context context) {
    super(context);
    this.context = context;

     LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

      itemView = inflater.inflate(layout, null);                
  }

  public View getView() {
    return itemView;
  }       
}
4

1 に答える 1

5

これを実現する簡単な方法の 1 つは、拡張されたレイアウトを拡張し、コンストラクターでFrameLayout自分自身 ( ) にアタッチすることです。this

public class MyView extends FrameLayout {

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.my_view, this);
    }

    // Your view logic here
}

次に、新しいビューをプログラムで使用できます。

MyView myView = new MyView(context);

または XML レイアウトで:

<packageName.MyView
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
于 2012-11-23T13:35:13.790 に答える