小编Mic*_*ski的帖子

膨胀的视图不会捕获onClick事件

我有一个模板视图,它看起来像;

template.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/contentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/view_background"
android:gravity="center_vertical"
tools:context=".MainActivity" >

<Button
    android:id="@+id/btnMultiple"
    android:layout_width="0dp"
    android:layout_height="150dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_weight="1"
    android:background="@drawable/button_backgroundblue"
    android:onClick="btnMultiple_clicked"
    android:tag="4"
    android:text="@string/mc_abcd"
    android:textColor="@drawable/button_textcolor"
    android:textSize="@dimen/h2" />
Run Code Online (Sandbox Code Playgroud)

我正在以编程方式创建此视图,然后我将此视图添加到ViewFlipper中;

activity_main.java

public void btnCreateView_clicked(View view) {
    ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.flipper);

    View myView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.template, viewFlipper, false);
    viewFlipper.addView(myView);
    viewFlipper.showNext(); // Showing lastly created myView successfully. }
Run Code Online (Sandbox Code Playgroud)

我的活动也有公共功能;

activity_main.java

    public void btnMultiple_clicked(View view) {
        //Save the world !
}
Run Code Online (Sandbox Code Playgroud)

当我按下从第一个视图它的成功创建模板(MyView的),然后将其添加到ViewFlipper btnCreateView按钮.当我点击btnMultiple我收到错误,我的应用程序崩溃; "无法在活动类android.app.Application中找到方法btnMultiple_clicked(View),用于视图类android.widget.Button上的onClick处理程序,id为'btnMultiple'"我确定现有方法btnMultiple_clicked(View).

PS!如果我以编程方式将监听器添加到btnMultiple它会工作,但我想知道为什么"android:onClick ="btnMultiple_clicked""不起作用?

android onclick android-inflate

5
推荐指数
1
解决办法
2533
查看次数

标签 统计

android ×1

android-inflate ×1

onclick ×1