如何访问活动中的片段按钮

时间:2015-01-09 12:22:55

标签: java android android-activity

我正在创建两个java文件第一个主要活动.java文件第二个fragment.java文件创建按钮片段.java如何点击写在activity.java上的监听器帮助我

fragment.java

public class fragment extends fragment{
Button btn;
// some code
btn = (Button)layout.findviewbyid(R.id.btn1);

}

}

activity.java

public class activity extends Activity
{


 // how to access the click action btn here
 btn.setOnclicklistner(new View.OnClickLisitner(){
 public OnClick(){


 }

3 个答案:

答案 0 :(得分:2)

您可以定义自定义clickListener类并在instance中创建fragment并在其中设置侦听器实例。现在您可以在该类中编写代码。希望它会对你有所帮助。

public class MyCustomListener implements OnClickListener{

     @override
     public void onClick(View v){

     // you stuff
     }  
}

然后在你的片段中调用此

MyCustomListener listener=new MyCustomListener();
btn.setOnClickListener(listener);

答案 1 :(得分:1)

如果我正确理解您的问题,您希望将片段内的按钮单击委托给其父活动。

保留对片段内的父活动的引用。然后将侦听器设置为片段中的按钮,如下所示:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        parentActivity.doStuff();
    }
};

在您的父级Activity中,定义方法doStuff()

public void doStuff() {
    // handle button click event here
}

答案 2 :(得分:1)

要使用片段活动中的按钮,您必须使用getActivity()

在你的片段中,

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_item_select, container, false);

        btn = (Button) getActivity().findViewById(R.id.btn);
}

btn是活动中的按钮

片段中的

getActivity()返回片段当前与之关联的活动。 (见http://developer.android.com/reference/android/app/Fragment.html#getActivity())。