为了账号安全,请及时绑定邮箱和手机立即绑定

Android Fragment onClick按钮方法

Android Fragment onClick按钮方法

温温酱 2019-09-02 08:23:21
我正在尝试在我的onClick(View v)XML中调用该方法,但不能与Fragment一起使用。这是错误。01-17 12:38:36.840: E/AndroidRuntime(4171): java.lang.IllegalStateException: Could not find a method insertIntoDb(View) in the activity class main.MainActivity for onClick handler on view class android.widget.Button with id 'btn_conferma'Java代码:public void insertIntoDb(View v) {...} XML:<Button        android:id="@id/btn_conferma"        style="?android:attr/borderlessButtonStyle"        android:layout_width="0.0dip"        android:layout_height="45dp"        android:layout_marginLeft="2dp"        android:layout_weight="1.0"        android:background="@drawable/bottoni"        android:gravity="center_horizontal|center_vertical"        android:onClick="insertIntoDb"        android:text="SALVA"        android:textColor="#ffffff"        android:textSize="16sp" />
查看完整描述

3 回答

?
慕仙森

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;

}


查看完整回答
反对 回复 2019-09-02
?
30秒到达战场

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

    }

 } 


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 680 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信