如何把fragment.getActivity()获得的Activity转成MainActivity?

dghjkoll 2015-10-10 10:31:33
MainActivity里有很多自己定义的成员变量,我用fragment的getActivity()获得的只是普通的Activity,无法访问MainActivity里定义的成员变量。我想强转成MainActivity,语句报错:MainActivity cannot be resolved to a variable。请问应该怎么做啊?
我想到的一种方法是fragment构造函数中传入MainActivity,把MainActivity作为fragment的成员变量,这样就能在fragment中直接访问MainActivity了,请问还有更好的方式吗?
...全文
771 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 14 楼 dalor 的回复:
解决了就行,小问题多注意。
好哒!
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 15 楼 crazy1235 的回复:
[quote=引用 7 楼 dghjkoll 的回复:] [quote=引用 4 楼 dghjkoll 的回复:] [quote=引用 3 楼 crazy1235 的回复:] [quote=引用 2 楼 dghjkoll 的回复:] [quote=引用 1 楼 crazy1235 的回复:] 你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。[/quote] 当然大不一样了。。。 基本都是用传参数的方法来的。。。。[/quote] 传参的方法有什么好处啊?感觉代码量上反而更多了[/quote] 还有个问题哈,setArguments(Bundle)需要传入一个Bundle,可是怎么把MainActivity放入bundle里啊?有这个方法么。。[/quote] 你干嘛非得把MainActivity放到bundle里面。 你把你需要用到的参数放进去就行了,干嘛非要放进去一个大的对象。 浪费么不是、、、 [/quote] 晓得了!
月盡天明 2015-10-10
  • 打赏
  • 举报
回复
引用 7 楼 dghjkoll 的回复:
[quote=引用 4 楼 dghjkoll 的回复:] [quote=引用 3 楼 crazy1235 的回复:] [quote=引用 2 楼 dghjkoll 的回复:] [quote=引用 1 楼 crazy1235 的回复:] 你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。[/quote] 当然大不一样了。。。 基本都是用传参数的方法来的。。。。[/quote] 传参的方法有什么好处啊?感觉代码量上反而更多了[/quote] 还有个问题哈,setArguments(Bundle)需要传入一个Bundle,可是怎么把MainActivity放入bundle里啊?有这个方法么。。[/quote] 你干嘛非得把MainActivity放到bundle里面。 你把你需要用到的参数放进去就行了,干嘛非要放进去一个大的对象。 浪费么不是、、、
开发者_android 2015-10-10
  • 打赏
  • 举报
回复
引用 12 楼 dghjkoll 的回复:
[quote=引用 10 楼 dghjkoll 的回复:] [quote=引用 9 楼 dghjkoll 的回复:] [quote=引用 6 楼 dghjkoll 的回复:] [quote=引用 5 楼 dalor 的回复:] 我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote] 我的代码是 (MainActivity)(this.getActivity); 觉得没问题啊![/quote] 写错了是:(MainActivity)(this,getActivity());[/quote] 我擦,可以了,不知道刚才哪里错了![/quote] 肯定是少括号了~~
开发者_android 2015-10-10
  • 打赏
  • 举报
回复
解决了就行,小问题多注意。
开发者_android 2015-10-10
  • 打赏
  • 举报
回复
引用 9 楼 dghjkoll 的回复:
[quote=引用 6 楼 dghjkoll 的回复:] [quote=引用 5 楼 dalor 的回复:] 我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote] 我的代码是 (MainActivity)(this.getActivity); 觉得没问题啊![/quote] 这还叫没问题?你这是什么语法?变量不叫变量,方法调用不叫调用的。。。。。。。
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 10 楼 dghjkoll 的回复:
[quote=引用 9 楼 dghjkoll 的回复:] [quote=引用 6 楼 dghjkoll 的回复:] [quote=引用 5 楼 dalor 的回复:] 我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote] 我的代码是 (MainActivity)(this.getActivity); 觉得没问题啊![/quote] 写错了是:(MainActivity)(this,getActivity());[/quote] 我擦,可以了,不知道刚才哪里错了!
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 9 楼 dghjkoll 的回复:
[quote=引用 6 楼 dghjkoll 的回复:] [quote=引用 5 楼 dalor 的回复:] 我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote] 我的代码是 (MainActivity)(this.getActivity); 觉得没问题啊![/quote] 写错了是:(MainActivity)(this,getActivity());
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 6 楼 dghjkoll 的回复:
[quote=引用 5 楼 dalor 的回复:] 我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote] 我的代码是 (MainActivity)(this.getActivity); 觉得没问题啊!
开发者_android 2015-10-10
  • 打赏
  • 举报
回复
引用 6 楼 dghjkoll 的回复:
[quote=引用 5 楼 dalor 的回复:]
我只想说,可以转~~~~

我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。[/quote]
把你的代码贴下看看,如图,我就在项目中这么用过~~~
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 4 楼 dghjkoll 的回复:
[quote=引用 3 楼 crazy1235 的回复:] [quote=引用 2 楼 dghjkoll 的回复:] [quote=引用 1 楼 crazy1235 的回复:] 你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。[/quote] 当然大不一样了。。。 基本都是用传参数的方法来的。。。。[/quote] 传参的方法有什么好处啊?感觉代码量上反而更多了[/quote] 还有个问题哈,setArguments(Bundle)需要传入一个Bundle,可是怎么把MainActivity放入bundle里啊?有这个方法么。。
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 5 楼 dalor 的回复:
我只想说,可以转~~~~
我当初觉得也可以啊大神,可是提示“MainActivity cannot be resolved to a variable”,它怎么不让我转。。。
开发者_android 2015-10-10
  • 打赏
  • 举报
回复
我只想说,可以转~~~~
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 3 楼 crazy1235 的回复:
[quote=引用 2 楼 dghjkoll 的回复:] [quote=引用 1 楼 crazy1235 的回复:] 你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。[/quote] 当然大不一样了。。。 基本都是用传参数的方法来的。。。。[/quote] 传参的方法有什么好处啊?感觉代码量上反而更多了
月盡天明 2015-10-10
  • 打赏
  • 举报
回复
引用 2 楼 dghjkoll 的回复:
[quote=引用 1 楼 crazy1235 的回复:] 你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。[/quote] 当然大不一样了。。。 基本都是用传参数的方法来的。。。。
dghjkoll 2015-10-10
  • 打赏
  • 举报
回复
引用 1 楼 crazy1235 的回复:
你直接传入参数就行了呗。
setArguments()
感觉和直接把MainActivity当成员变量差不多。。。
月盡天明 2015-10-10
  • 打赏
  • 举报
回复
你直接传入参数就行了呗。
setArguments()

80,351

社区成员

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

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