Java 如何将OnClickListener从活动传递到片段
我需要将OnClickListener对象从活动传递到片段。 我无法将参数传递给片段构造函数,因此我想执行以下操作:Java 如何将OnClickListener从活动传递到片段,java,android,android-fragments,Java,Android,Android Fragments,我需要将OnClickListener对象从活动传递到片段。 我无法将参数传递给片段构造函数,因此我想执行以下操作: Bundle bundle = new Bundle(); bundle.putCustomObject(new OnClickListener(){...}); 将方法添加到片段: public void setOnClickListener(OnClickListener listener) { mListener = listener;} 调用片段的方法: mFrag
Bundle bundle = new Bundle();
bundle.putCustomObject(new OnClickListener(){...});
将方法添加到片段:
public void setOnClickListener(OnClickListener listener) { mListener = listener;}
调用片段的方法:
mFragment.setOnClickListener(new OnClickListener() { /* YOUR CODE HERE */ });
将方法添加到片段:
public void setOnClickListener(OnClickListener listener) { mListener = listener;}
调用片段的方法:
mFragment.setOnClickListener(new OnClickListener() { /* YOUR CODE HERE */ });
我认为最好的方法是使用方法
onClick()
创建接口
,并将活动
的回调设置为片段
接口
public interface FragmentClickListener
{
void onClick();
}
在Fragment类中创建变量和方法以接收FragmentClickListener:
private FragmentClickListener listener;
public void setOnClickListener(FragmentClickListener listener)
{
this.listener = listener;
}
然后,在片段类的某些方法中,您可以如下方式调用侦听器:
void someMethod()
{
if(listener != null) {
listener.onClick();
}
}
fragment.setOnClickListener(new FragmentClickListener(){
@Override
public void onClick() {
//do something here
}
});
在活动类中,按如下方式定义回调:
void someMethod()
{
if(listener != null) {
listener.onClick();
}
}
fragment.setOnClickListener(new FragmentClickListener(){
@Override
public void onClick() {
//do something here
}
});
我认为最好的方法是使用方法
onClick()
创建接口
,并将活动
的回调设置为片段
接口
public interface FragmentClickListener
{
void onClick();
}
在Fragment类中创建变量和方法以接收FragmentClickListener:
private FragmentClickListener listener;
public void setOnClickListener(FragmentClickListener listener)
{
this.listener = listener;
}
然后,在片段类的某些方法中,您可以如下方式调用侦听器:
void someMethod()
{
if(listener != null) {
listener.onClick();
}
}
fragment.setOnClickListener(new FragmentClickListener(){
@Override
public void onClick() {
//do something here
}
});
在活动类中,按如下方式定义回调:
void someMethod()
{
if(listener != null) {
listener.onClick();
}
}
fragment.setOnClickListener(new FragmentClickListener(){
@Override
public void onClick() {
//do something here
}
});