2

我有一个从相对布局扩展的自定义类。在我的 xml 中有线性布局和里面的按钮。当我膨胀它并尝试与 onclick 一起使用时,它不起作用。但是,如果我不使用按钮,单击即可。这是代码:

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/inflated_layout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:orientation="vertical">
        <LinearLayout
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center"
              android:background="@drawable/en_ad_purplebutton">
             <Button
                    android:id="@+id/general_button"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/en_button_positive"
                    android:textColor="@color/en_white"
                    android:textSize="20sp"
                    android:clickable="true"/>
        </LinearLayout> 

自定义类:

@Override
public void onFinishInflate() {
    init();
}

private void init(){
    inf.inflate(R.layout.uc_button_positive, this);
    b = (Button)findViewById(R.id.general_button);        
}

这是我使用这个自定义类的代码

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:custom="http://schemas.android.com/apk/res/finansbank.enpara"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center"
          android:orientation="vertical" >


     <mypakage.customClass
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/view"
        android:text="deneme"
        android:onClick="go"
        android:clickable="true"
        android:layout_gravity="center"/>
 </LinearLayout>
4

1 回答 1

3

我也试过了,发现不行,发现需要做这样的事件:

layout = (LinearLayout) inflater.inflate(R.layout.your layout,
            container, false);


Button b=(Button)layout .findViewById(R.id.view);
    v.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    });

效果很好!!

于 2013-06-11T06:43:46.313 回答