onclick不适用于充气布局

时间:2013-06-11 06:27:52

标签: android layout-inflater

我有一个从相对布局扩展的自定义类。在我的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> 

CustomClass:

@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>

1 个答案:

答案 0 :(得分:2)

我也试过了,看到了它并没有用, 并发现需要做这样的事件:

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

        }
    });

效果很好!!