作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 fragment 中创建了一个函数。我想在单击自定义适配器中的按钮时调用该函数,但我无法从自定义适配器调用 fragment 函数。
我的适配器代码是单击一个按钮并调用 fragment 的函数
viewHolder.accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeListItem(viewHolder.order_card_layout, position);
android.support.v4.app.Fragment newFragment = new NewPageActivity();
android.support.v4.app.FragmentTransaction ft = ((FragmentActivity)mContext).getSupportFragmentManager().beginTransaction();
ft.sendorder(data.getorder_id());
ft.add(R.id.framelay, newFragment).commit();
}
});
我的函数在 fragment 中
public class NewPageActivity extends Fragment{
public void SendOrder( String OrderId)
{
final String serverid = sp.getString("serverid", "null");
Log.e("TAG", "SendOrder: "+serverid +OrderId );
new SendOrder().execute(new Config().addNewOrder, serverid, OrderId);
}
}
最佳答案
在适配器中创建一个接口(interface)类并在您的 fragment 类中实现,如下所示
内部适配器类
public Interface CallBack{
void yourMethodName();
}
现在在 fragment 类中实现你的接口(interface)方法,如下所示
public class YourFragment implements CallBack{
...........
@Override
public void yourMethodName(){
//"here call your fragment method or do any bussiness logic
}
}
最后,在将接口(interface)实例传递给适配器构造函数之前,您应该像下面这样在适配器 onclick 监听器中调用接口(interface)方法
public class YourAdapterClass extends BaseAdapter {
private CallBack mCallBack;
public YourAdapterClass (CallBack callback){
mCallBack = callback;
}
}
然后在你的 onClickListener 中像这样调用你的接口(interface)方法
@Override
public void onClick(View v) {
mCallBack.yourMethodName();
}
});
完成
关于android - 如何从自定义适配器调用 fragment 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41295784/
我是一名优秀的程序员,十分优秀!