3 回答
![?](http://img1.sycdn.imooc.com/533e4d510001c2ad02000200-100-100.jpg)
TA贡献1827条经验 获得超8个赞
你的活动必须有
public void insertIntoDb(View v) {
...
}
不是碎片。
如果您不想在活动中进行上述操作。初始化片段中的按钮并将侦听器设置为相同。
<Button
android:id="@+id/btn_conferma" // + missing
然后
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_rssitem_detail,
container, false);
Button button = (Button) view.findViewById(R.id.btn_conferma);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// do something
}
});
return view;
}
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
TA贡献1828条经验 获得超6个赞
这不是问题,这是Android的设计。看到这里:
您应该将每个片段设计为模块化和可重用的活动组件。也就是说,因为每个片段使用自己的生命周期回调定义自己的布局和自己的行为,所以可以在多个活动中包含一个片段,因此您应该设计为重用并避免直接操作另一个片段中的一个片段。
可能的解决方法是在MainActivity中执行以下操作:
Fragment someFragment;
...onCreate etc instantiating your fragments
public void myClickMethod(View v){
someFragment.myClickMethod(v);
}
然后在你的Fragment类中:
public void myClickMethod(View v){
switch(v.getid()){
// Your code here
}
}
- 3 回答
- 0 关注
- 680 浏览
添加回答
举报