kunyashaw博客主页 关注kunyashaw新博客 关于kunyashaw 转到底部

67、activity中调用fragment内部自定义的方法

fragment:

复制代码
/**
 * author: Created by zzl on 15/11/19.
 */
@SuppressLint("validFragment")
public class pushMealHistoryFragment extends Fragment {

    Context ctxt;
    View gridALl;
    public pushMealHistoryFragment(Context ctxt)
    {
        this.ctxt = ctxt;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        gridALl = inflater.inflate(R.layout.fragment_push_meal_history, null);

        return gridALl;
    }

    public void updateGridview()
    {
        final GridView gridviewHistory = (GridView)gridALl.findViewById(R.id.gridview_pushing_history);
        final Button btnBackground = (Button)gridALl.findViewById(R.id.empty_meal_done_history_gridview);

        ApisManager.getMealPushedHistory(CommonUtils.getFormatDate(0), new ApiCallback() {
            @Override
            public void success(final Object object) {

                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        HandlerUtils.showToast(ctxt, "hello,i'm refreshing...");
                        List<PushHistoryFood> list = (List<PushHistoryFood>) object;
                        PushHistoryAdapterr adapter = new PushHistoryAdapterr(ctxt, list);
                        gridviewHistory.setAdapter(adapter);
                        if (list.size() == 0) {
                            btnBackground.setVisibility(View.VISIBLE);
                        } else {
                            btnBackground.setVisibility(View.INVISIBLE);
                        }
                    }
                });

            }

            @Override
            public void error(BaseApi.ApiResponse response) {

            }
        });
    }

}
复制代码

 

如果要在activity中调用上面的fragment的updateGridview方法,demo:

复制代码
/**
 * author: Created by zzl on 15/11/19.
 */
public class PushMealActivity extends BaseActivity {
    
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mealdone);
        init();
    }
    


  public void init()
 {

   Fragment fragmentPushMealHistory = new pushMealHistoryFragment(ctxt);    
    //在这里调用fragmentPushMealHistory的updateGridview方法
   ((pushMealHistoryFragment)fragmentPushMealHistory).updateGridview();

 }        

}
复制代码

 

2015.11.27更新:

根本原因是fragmentPushMealHistory定义的类型为Fragment,如果为pushMealHistoryFragment,则不需要做强制转换了

posted @   kunyashaw  阅读(4020)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
回到顶部
点击右上角即可分享
微信分享提示