安卓,Fragment加载不同适配器

KingfarOu 2016-08-18 12:02:52
需求如下:我有一个"Fragment",对应布局文件只有"ListView",另外我有多个针对该"ListView"写的适配器,但是这个"ListView"具体使用哪个适配器,由调用"Fragment"的"Activity"来决定。问:该如何封装这个"Fragment",才能根据传进来的适配器的类名决定创建哪个?一定要用反射加载适配器么?如果要,该怎么写,如果不要,其他方法是怎样的?
...全文
384 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimixi666 2016-08-19
  • 打赏
  • 举报
回复
引用 2 楼 u010707039 的回复:
[quote=引用 1 楼 mimixi666 的回复:] 1.你在创建fragment的时候,从activity传参数过去给fragment, 2.然后根据参数加载不同的适配器不就行了吗? 3.还是说我理解错你的意思?
没理解错,是我说的不够详细,理论上你这样可行,现在项目的需求是该"Fragment"可能加载四个不同的适配器,那我就要写出四个if()else{},那么如果以后需求变了,他要可能加载十个,难道我要写出十个if()else{}[/quote] 嗯嗯,明白了,用反射确实可以。 如果嫌弃反射效率低,你可以用map装起来,然后在创建fragment的时候,从activity传参数过去给fragment,再加载接口或者抽象适配器就可以了。 它比反射就是多了1个容器维护的步骤而已。
KingfarOu 2016-08-19
  • 打赏
  • 举报
回复
引用 6 楼 xlyhr007 的回复:
在对应的activity发送广播或eventbus,在每个activity中放一个静态的Adapter,相应activity做加载fragment操作时,把自己传进一个全局的Activity对象,fragment更新数据直接用全局Activity对象.Adapter
这个没有太听明白,可不可以说得细些,谢谢
xlyhr007 2016-08-18
  • 打赏
  • 举报
回复
引用 6楼xlyhr007 的回复:
在对应的activity发送广播或eventbus,在每个activity中放一个静态的Adapter,相应activity做加载fragment操作时,把自己传进一个全局的Activity对象,fragment更新数据直接用全局Activity对象.Adapter
广播,eventbus,全局对象是三个方法,相互无关
xlyhr007 2016-08-18
  • 打赏
  • 举报
回复
在对应的activity发送广播或eventbus,在每个activity中放一个静态的Adapter,相应activity做加载fragment操作时,把自己传进一个全局的Activity对象,fragment更新数据直接用全局Activity对象.Adapter
Stanny_Bing 2016-08-18
  • 打赏
  • 举报
回复
正解,传参数,有多少就if else多少,哪怕你有一百个界面要用呀
moonFY 2016-08-18
  • 打赏
  • 举报
回复
引用 3 楼 ink_s 的回复:
[quote=引用 2 楼 u010707039 的回复:] [quote=引用 1 楼 mimixi666 的回复:] 1.你在创建fragment的时候,从activity传参数过去给fragment, 2.然后根据参数加载不同的适配器不就行了吗? 3.还是说我理解错你的意思?
没理解错,是我说的不够详细,理论上你这样可行,现在项目的需求是该"Fragment"可能加载四个不同的适配器,那我就要写出四个if()else{},那么如果以后需求变了,他要可能加载十个,难道我要写出十个if()else{}[/quote] 不 你还可以用 switch case [/quote] 哈哈,看了楼上刚想说
ink_s 2016-08-18
  • 打赏
  • 举报
回复
引用 2 楼 u010707039 的回复:
[quote=引用 1 楼 mimixi666 的回复:] 1.你在创建fragment的时候,从activity传参数过去给fragment, 2.然后根据参数加载不同的适配器不就行了吗? 3.还是说我理解错你的意思?
没理解错,是我说的不够详细,理论上你这样可行,现在项目的需求是该"Fragment"可能加载四个不同的适配器,那我就要写出四个if()else{},那么如果以后需求变了,他要可能加载十个,难道我要写出十个if()else{}[/quote] 不 你还可以用 switch case
KingfarOu 2016-08-18
  • 打赏
  • 举报
回复
引用 1 楼 mimixi666 的回复:
1.你在创建fragment的时候,从activity传参数过去给fragment, 2.然后根据参数加载不同的适配器不就行了吗? 3.还是说我理解错你的意思?
没理解错,是我说的不够详细,理论上你这样可行,现在项目的需求是该"Fragment"可能加载四个不同的适配器,那我就要写出四个if()else{},那么如果以后需求变了,他要可能加载十个,难道我要写出十个if()else{}
mimixi666 2016-08-18
  • 打赏
  • 举报
回复
1.你在创建fragment的时候,从activity传参数过去给fragment, 2.然后根据参数加载不同的适配器不就行了吗? 3.还是说我理解错你的意思?
1.1掌握Android四层体系架构 5 1.2 Eclipse工程文件 5 1.3 Android项目的编译及运行过程 6 2.1 AndroidStudio中R文件的位置 7 2.2 View继承结构图 7 2.3 LinearLayout布局基本属性 7 2.4 用户名密码 登陆重置常用代码 9 2.5 ARBG颜色 10 2.6 命名空间 10 2.7 RelativeLayout相对布局属性 10 2.8 相对布局代码 11 2.9 FramLayout 帧布局 13 2.10 TableLayout 表格布局 14 2.11 AbsoluteLayout绝对布局 16 3.1 sp、dp、dip、pt、px等单位的区别 17 3.2 TextView属性 18 3.3跑马灯效果的最小代码集 19 3.4给按钮注册点击事件的方式 19 3.5 EditText属性 20 3.6 simple_list_item_1是什么 21 3.7 ImageView的属性 22 3.8 CheckBox属性及相关代码 23 3.9 RadioGroup属性及相关代码 25 3.10 ToggleButton 26 3.11 Spinnner 28 3.12 DatePicker 29 3.13 TimePicker 30 4.1适配器是什么 30 4.2 ArrayAdapter的使用 32 4.3设置监听以及得到用户点中项的内容 32 4.4 AutoCompleteTextView的使用 33 4.5 Gallery核心代码及SimpleAdapter的使用 35 4.6 EditText设置监听 37 5.1 Activity生命周期 38 5.2 Activity中临时数据存储相关方法 40 5.3 Intent 意图的使用 43 5.4 使用显式意图激活组件的多种方式 44 5.5 Activity的六种传值方式 45 6.1 Task与BackStack概念 53 6.2 Activity的启动模式 54 6.3 Intent 六大属性 55 6.4 IntentFilter 意图过滤器 57 7.1 Android中进程的生命周期 61 7.2 UI线程模型的两条规则及矛盾解决的三种方法 61 7.3 方法一代码 62 7.4 AsyncTask 特点、参数及需要实现的方法 64 7.5 异步任务代码 64 7.6 下载进度对话框相关实现代码 67 7.7使用runONUiThread()\HttpURLConnection完成文件下载操作 68 7.8 掌握AsyncTask异步任务下载网络资源 70 7.9 DatePickerDialog、TimePickerDialog的使用 76 8.1 ListView、SimpleAdapter和ArrayAdapter的使用 78 8.2 自定义适配器及BaseAdapter 83 8.3 ListView的缓存原理 85 8.4 ListView配合AsyncTask加载网络数据——JSON/XML 87 9.1 数据分页策略及算法 106 9.2 分页加载代码 106 9.3解决图文混排的问题(方法1) 109 9.4 进度对话框提示加载和页脚提示加载 118 10.1 实现分页及解决图文混排的问题 119 10.2 GridView常用属性(使用参考ListView) 124 10.3 ExpandableListView的使用 124 11.1选项菜单XML文件 132 11.2菜单的分类 132 11.3 选项菜单相关方法 133 11.4 JAVA代码生成选项菜单 134 11.5上下文菜单的编写步骤 135 11.6上下文菜单绑定到 ListView 代码 136 11.7弹出菜单的使用步骤 137 11.8 AlertDialog 常用方法 138 11.9 AlertDialog对话框的使用步骤 140 11.10 列表对话框使用 141 11.12 多选列表对话框 142 11.13 通知:简单、普通、大视图、带进度条、自定义通知 143 12.1 Fragment编写步骤 149 12.2 fragment生命周期演示 150 12.3ScrollView布局文件 156 12.4 Fragment代码 157 12.5 Activity传值到Fragment 159 12.6 Fragment传值到Activity 162 12.7 Fragment传值到Fragment 164 12.8万能的接口回调 165 13.1 Android数据存储分类 166 13.2 Shared Preferences存储 166 13.3 测试类的编写示例 170 13.4内部存储 173 13.5外部存储 176 14.1 SQL的分类 184 14.2常用SQL语句的使用 184 14.3数据库的使用(SQL) 185 14.4 数据库的使用(调用已封装SQL语句的方法) 200 14.5 简单游标适配器的使用及分页效果的实现 207 15.1对手机通讯录的增删改查 211 15.2查询手机通话记录 221 15.3操作手机短信 224 16.1 自定义内容提供者的编写步骤 226 16.2 如何使当前应用的内容提供者可以被其他应用访问到 236 17.1 Loader的使用步骤及SearchView的使用 237 17.2 AsyncTaskLoader的使用步骤以及它与CusorLoader的区别 245 18.1 使用Handler完成子线程发送消息和Runnable对象到主线程 250 18.2 使用Handler完成主线程发送消息到子线程 256 18.3内存泄露和内存溢出的区别以及引用的级别 260 18.4 使用软引用解决Handler内存泄漏问题 262 19.1 ActionBar的显示和隐藏 264 19.2 SearchView、ActionLayout、ShareActionProvider的使用 265 19.3 ActionBar选项卡模式的使用 270 19.4 ActionBar列表模式的使用 274 19.5通过功能清单文件设置主题 277 20.1ViewPager和PagerAdapter的使用 277 20.2 ViewPager 监听器的使用 281 20.3 带标题的ViewPager效果的实现 287 20.4 使用范例(UI) 291 20.5 FragmentPagerAdapter的使用 298 20.6 范例二 302 20.7 范例3 313 21.1 ActionBar、ViewPager及Fragment的混合使用 321 21.2检查手机网络状态的使用过程 327 21.3 WebView的使用 328 21.4 WebView+Jason 329 21.5 WebView访问服务器 331 21.6 VideoView的使用 336 22.1 广播的分类 338 22.2 正常广播 339 22.3 有序广播 341 22.4 粘滞广播 342 22.5 检查手机状态是否联网 344 22.6短信拦截 346 22.7 电话拦截 349 23.1启动服务 350 23.2 IntentService的使用 354 23.3 绑定服务 356 23.4 boundservicewithinterface 362 23.5启动式服务和绑定式服务的混合使用 370 23.6 手机窃听器的开发 371

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧