如何在使用<include>标记时使用Onclick事件

use*_*451 3 java android android-activity

我有两个java类两个布局.每个布局都有一个按钮.这两个类都在扩展Activity.现在在第一个布局中我使用了包含这样的标签

<include 
    android:id="@+id/clicked" 
    layout="@layout/activity_main" />
Run Code Online (Sandbox Code Playgroud)

我现在可以看到两个按钮,第二个按钮不起作用.

Pan*_*kaj 5

首先您必须声明并初始化include视图,然后使用view.findViewById()方法对两个按钮进行decalre和初始化,如下所示:

View includeView = (View)findViewById(R.id.clicked);
Button button1 = (Button)includeView.findViewById(R.id.button1ID); //decalre button like this
Button button2 = (Button)includeView.findViewById(R.id.button2ID);
Run Code Online (Sandbox Code Playgroud)

然后设置他们的onClickListeners

button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //code whatever you want to do here
            }
        });

 button2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //code whatever you want to do here
            }
        });
Run Code Online (Sandbox Code Playgroud)

**编辑**

修正了错字.应该是findViewById上的includeView.虽然好解释!