我正在创建两个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(){
}
答案 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())。