首页 文章

如何在Fragment中捕获onclick事件

提问于
浏览
2

我在xml布局文件中声明了许多按钮,并将此布局用于片段 .

button android:id="@+id/button1" android:onClick="onClickButton"/>
button android:id="@+id/button2" android:onClick="onClickButton"/>
....
button android:id="@+id/buttonN" android:onClick="onClickButton"/>

令人失望的是,“onClickButton”事件是在主机活动中捕获的,而不是在我的片段中 . 当然,在我的片段中,我可以手动解决此问题,如下所示:

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

    View view = inflater.inflate(R.layout.fragment_content, container, false);

    Button button1 = (Button) view.findViewById(R.id.button1);
    button1.setOnClickListener(...);

    ... etc

    Button buttonN = (Button) view.findViewById(R.id.buttonN);
    buttonN.setOnClickListener(...);

是否有任何明确的方法来处理Fragment中的onClickbutton事件?

2 回答

  • 6

    您提到的方法是这样做的标准方法:

    Button buttonN = (Button) view.findViewById(R.id.buttonN);
     buttonN.setOnClickListener(...);
    

    只需让Fragment实现OnClickListener,然后就可以将其设置为监听所有按钮

    Button buttonN = (Button) view.findViewById(R.id.buttonN);
    buttonN.setOnClickListener(this);
    
  • 1

    不幸的是,在使用Android SDK时,在代码中执行此操作是唯一的方法 .

    你尝试过定制的东西吗? AndroidAnnotationsRoboGuice减少冗长 .

相关问题