社区
Android
帖子详情
Fragment中的Button响应事件处理
ferraborghini
2016-03-24 12:57:23
1、 Fragment实现了View.OnClickListener,重写了onClick方法,但是无响应。
2、在Fragment填充的布局文件中的Button设置onClick属性,在Fragment中不能实现。
3、但是在onCreateView中给Button添加监听事件,就可以做到相应。
...全文
535
4
打赏
收藏
Fragment中的Button响应事件处理
1、 Fragment实现了View.OnClickListener,重写了onClick方法,但是无响应。 2、在Fragment填充的布局文件中的Button设置onClick属性,在Fragment中不能实现。 3、但是在onCreateView中给Button添加监听事件,就可以做到相应。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
KingfarOu
2016-03-26
打赏
举报
回复
我印象中布局文件里的"onclick"属性只能指向活动里的方法,不能指向Fragment里的方法,所以如果想要响应点击事件,你必须在Fragment里面"findViewByID()"然后进行“setOnclickListener”
xiaomike618
2016-03-26
打赏
举报
回复
你在Fragment实现了onClickListener接口,你的Button也要设置监听器才行啊,比如:btn.setOnClickListener(this); this指的是Fragment实例对象。
xingzhong128
2016-03-24
打赏
举报
回复
这个是因为在xml中实现的android:onClick解析代码在View中: case R.styleable.View_onClick: if (context.isRestricted()) { throw new IllegalStateException("The android:onClick attribute cannot " + "be used within a restricted context"); } final String handlerName = a.getString(attr); if (handlerName != null) { setOnClickListener(new DeclaredOnClickListener(this, handlerName)); } break; 可以看到处理这个onClick属性时framework的默认实现是新建乐意个DeclaredOnClickListener的回调对象 private static class DeclaredOnClickListener implements OnClickListener { private final View mHostView; private final String mMethodName; private Method mMethod; public DeclaredOnClickListener(@NonNull View hostView, @NonNull String methodName) { mHostView = hostView; mMethodName = methodName; } @Override public void onClick(@NonNull View v) { if (mMethod == null) { mMethod = resolveMethod(mHostView.getContext(), mMethodName); } try {
mMethod.invoke(mHostView.getContext(), v);
} catch (IllegalAccessException e) { throw new IllegalStateException( "Could not execute non-public method for android:onClick", e); } catch (InvocationTargetException e) { throw new IllegalStateException( "Could not execute method for android:onClick", e); } } .......... // 其他代码 } 这个对象的onClick回调函数里使用反射实现的调用,反射的对象是getContext()也就是view所在的activity,所以如果你在actiivty的layout里定义了onclick属性的回调方法,并且在在activity里实现了方法,那么就可以响应。在fragment里定义的方法不会作为android:onClick属性的回调方法。
wei220000
2016-03-24
打赏
举报
回复
Fragment实现了View.OnClickListener,重写了onClick方法-----那你有给button绑定setonclicklistener吗? 在Fragment填充的布局文件中的Button设置onClick属性------那你有添加对应的click方法吗?
android
fragment
实现按钮切换
通过按钮动态切换
fragment
,实现tab的效果
ListView
中
添加
Button
点击事件并改变状态
自己在项目
中
遇到的一个小问题,做完之后做了一个小记录,希望对和我一样的有点帮助,例子很简单菜希望能有用。
使用
fragment
实现仿微信界面
使用
Fragment
实现仿微信界面的实现
Android
中
Fragment
Activity使用的基本步骤.pdf
Android
中
Fragment
Activity使用的基本步骤.pdf 学习资料 复习资料 教学资源
Fragment
+PopupWindow完美实现了仿QQ空间底部菜单栏效果(源码+效果图)
利用了android3.0新引进的
Fragment
类和PopupWindow弹出菜单完美的实现了仿QQ空间底部菜单栏的效果,项目
中
包含效果图和项目结构图。
Android
80,472
社区成员
91,384
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章