作者fit1122 (黄)
看板AndroidDev
标题[问题] Fragment onClick问题
时间Fri May 6 19:40:38 2016
最近写了一个Gallery
做法是另外写个GalleryAdapter把photo_view(个别放网路上读到的图)这个layout读进
主要的layout(布局是用GridView)中
并在photo_view中有把imageview设onclick 让使用者按每张图片都可以直接触发事件
但後来因为整体需求把程式改用fragment写 才发现fragment不允许从xml档直接onclick
在网路上找了有两个主要的方法
1.
是让fragment实作OnClickListener
然後@Override onClick
但试过後按图片完全没反应(连onClick都没进去)
2.
另一个方法是一样在xml中设定android:onClick="myClickMethod"
然後用Activity来接
Activity中里:
Fragment someFragment;
public void myClickMethod(View v) {
someFragment.myClickMethod(v);
}
但试过後都会发生错误java.lang.NullPointerException
希望大家看得懂QQ
请问有大大知道该怎麽做吗
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.168.42.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1462534842.A.59E.html
※ 编辑: fit1122 (114.42.115.220), 05/06/2016 20:07:58
1F:→ FlowerYen: 1. 确认你imageview是否有setOnClickListener 05/06 20:20
2F:→ FlowerYen: 2. 如果是照你说到写法,你的someFragment没有instance 05/06 20:22
3F:→ FlowerYen: 当然会出现NPE 05/06 20:22
感谢大大指引!!
我本来以为用
Myfragment somefragment = new Myfragment();
的方式就可以
刚在这边找到
https://github.com/codepath/android_guides/wiki/Creating-and-Using-Fragments
要用
Myfragment somefragment = (Myfragment)
getSupportFragmentManager().findFragmentByTag("MyTag");
这样就成功了
※ 编辑: fit1122 (114.42.115.220), 05/06/2016 21:22:44