【问题标题】:get a button within a fragment from the activity从活动中获取片段内的按钮
【发布时间】:2014-06-28 20:34:33
【问题描述】:

我该怎么做?或者甚至有可能从activity 获得fragment 中的button

我尝试了很多东西,例如试图获取片段的视图或容器,但没有运气。

我这样做是因为我在 activity 中有 27 个 fragments,它们都有相同的 button。我不想在每个片段上做一个按钮侦听器,而是想大大减少我的代码,但只是在我的activity 中循环遍历每个片段并设置按钮以在按下时激活按钮侦听器(在活动中)。

一旦我知道如何获取button 并将其设置为按钮listener,我就可以轻松地自己进行循环。

我刚刚完成计算机科学的第一年,并且已经使用 Java 编码已有几年了。

提前致谢!

【问题讨论】:

    标签: java android button android-activity fragment


    【解决方案1】:

    不要循环或获取对按钮的引用。

    只需让您的活动实现 OnClickListener 并将其设置为所有片段中按钮的点击侦听器.. 在片段中

    yourBtn.setOnClickListener(((YourActivityType) getActivity()));
    

    另一个没有implements关键字的解决方案

    就是在你的activity中有一个公共方法,例如setButtonAction(Button btn)

    public void setButtonAction(Button btn) {
         btn.setOnClickListener(myClickListener);
    }
    

    并将 myClickListener 声明为 youractivity 中的变量

    同样的想法,无需您的活动来实现 clickLitener

    【讨论】:

    • ...没有工具有没有办法做到这一点?
    • 改了一点,我做了: ((GameActivity)getActivity()).setButtonAction(view.findViewById(R.id.button1));在片段和活动中我做了: public void setButtonAction(View view) { Button btn = (Button) view; btn.setOnClickListener(onButtonClick); }
    • 您在将按钮传递给 setButtonAction 时已经查找过按钮,您不必在方法中再次使用 findViewById
    猜你喜欢
    • 2018-12-30
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 2016-08-17
    • 1970-01-01
    相关资源
    最近更新 更多