社区
Android
帖子详情
Fragment中的Button响应事件处理
ferraborghini
2016-03-24 12:57:23
1、 Fragment实现了View.OnClickListener,重写了onClick方法,但是无响应。
2、在Fragment填充的布局文件中的Button设置onClick属性,在Fragment中不能实现。
3、但是在onCreateView中给Button添加监听事件,就可以做到相应。
...全文
514
4
打赏
收藏
Fragment中的Button响应事件处理
1、 Fragment实现了View.OnClickListener,重写了onClick方法,但是无响应。 2、在Fragment填充的布局文件中的Button设置onClick属性,在Fragment中不能实现。 3、但是在onCreateView中给Button添加监听事件,就可以做到相应。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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的效果
Android
中
Fragment
点击事件的添加(及点击事件无
响应
的原因)
接下来举一个例子说明
fragment
中
点击事件的基本写法。 这个小程序由一个activity嵌套一个
fragment
组成。
fragment
的布局(很简单) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
两个堆叠
fragment
,上层
fragment
响应
于降低
fragment
的
button
点击事件补救措施
加入onViewCreated的Touch事件监听, 以解决叠在一起的
fragment
上层
响应
下层的
button
点击事件解决方法 @Override public void onViewCreated(View view, Bundle savedInstanceState) { view.setOnTouchListener...
在
Fragment
中
,
Button
的onClick失效的解决方法
按钮初始化 和 添加点击事件 不要在onCreateView里面加 ...public class
Fragment
2 extends
Fragment
{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sav...
在Activity或
Fragment
中
响应
ListView内部按钮的点击事件
在Adapter
中
定义一个回调接口,在Activity
中
实现该接口,从而实现对点击事件的
响应
。除了接口回调之外,也可以使用抽象类回调。
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章