Java 单击片段中多个按钮的事件不工作

Java 单击片段中多个按钮的事件不工作,java,android,xml,android-fragments,android-button,Java,Android,Xml,Android Fragments,Android Button,尝试让我的所有3个按钮在片段中使用相同的单击事件后,公共类FragmentShapesDemo扩展了android.support.v4.app.fragment实现了视图。OnClickListener变为带下划线的红色并返回错误: 类“FragmentShapesDemo”必须在OnClickListener中声明为抽象或实现抽象方法“onClick(View)” 我不明白为什么在执行单击事件时会出现此错误:-/ fragment\u shapes\u demo.xml <Button

尝试让我的所有3个按钮在片段中使用相同的单击事件后,
公共类FragmentShapesDemo扩展了android.support.v4.app.fragment实现了视图。OnClickListener
变为带下划线的红色并返回错误:

类“FragmentShapesDemo”必须在OnClickListener中声明为抽象或实现抽象方法“onClick(View)”

我不明白为什么在执行单击事件时会出现此错误:-/

fragment\u shapes\u demo.xml

<Button
    android:id="@+id/btn_1"
    android:onClick="btn_Click"
    android:text="@string/circles"/>

<Button
    android:id="@+id/btn_2"
    android:onClick="btn_Click"
    android:text="@string/squares"/>

<Button
    android:id="@+id/btn_3"
    android:onClick="btn_Click"
    android:text="@string/triangles"/>

从XML中删除
onClick

<Button
    android:id="@+id/btn_1"

    android:text="@string/circles"/>

<Button
    android:id="@+id/btn_2"
    android:text="@string/squares"/>

<Button
    android:id="@+id/btn_3"
    android:text="@string/triangles"/>

为什么要使用getActivity().findViewById()来显示不同的视图,例如,在您的情况下,我想对我的所有按钮使用相同的单击事件,因此这个答案是无效的。我如何做到这一点而不必输入代码3次?我们需要遵循一些代码结构,因为您希望从所有按钮中获得它。您如何定义单击哪个按钮,您也可以选择第一个答案。但据我所知,如果没有正确的id初始化,就不可能获得这种能力。有可能将所有3个单击事件合并为一个吗?例如,
button0 | button1 | button2.setOnClickListener
No,因为android架构使用每个视图的唯一id标识每个视图,并对这些视图执行操作。否则检查黄油刀文档,可能会有所帮助-
<Button
    android:id="@+id/btn_1"

    android:text="@string/circles"/>

<Button
    android:id="@+id/btn_2"
    android:text="@string/squares"/>

<Button
    android:id="@+id/btn_3"
    android:text="@string/triangles"/>
public class FragmentShapesDemo extends android.support.v4.app.Fragment {

    Button button0;
    Button button1;
    Button button2;

    public FragmentShapesDemo() {
        // Required empty constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.fragment_shapes_demo, container, false);

        button0 = (Button)v.findViewById(R.id.btn_1);
        button1 = (Button)v.findViewById(R.id.btn_2);
        button2 = (Button)v.findViewById(R.id.btn_3);

        button0.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Toast.makeText(getActivity, "Do Your Work", Toast.LENGTH_SHORT).show();
                }
            });

        button1.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {

                }
            });

        button2.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {

                }
            });

        return v;
    }
}