Android的碎片的onClick按钮的方法 [英] Android Fragment onClick button Method

查看:1099
本文介绍了Android的碎片的onClick按钮的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想援引我的onClick(视图v)XML的方法,但不与片段工作。这是误差

  12月1日至17日:38:36.840:E / AndroidRuntime(4171):java.lang.IllegalStateException:
找不到在活动课main.MainActivity的方法insertIntoDb(查看)
为onclick处理程序的视图类android.widget.Button ID为'btn_conferma


公共无效insertIntoDb(视图v){
...
}




<按钮
        机器人:ID =@ ID / btn_conferma
        风格=机器人:ATTR / borderlessButtonStyle
        机器人:layout_width =0.0dip
        机器人:layout_height =45dp
        机器人:layout_marginLeft =2DP
        机器人:layout_weight =1.0
        机器人:背景=@可绘制/ bottoni
        机器人:重力=center_horizo​​ntal | center_vertical
        机器人:的onClick =insertIntoDb
        机器人:文本=SALVA
        机器人:文字颜色=#FFFFFF
        机器人:TEXTSIZE =16SP/>
 

解决方案

您的活动必须有

 公共无效insertIntoDb(视图v){
...
}
 

不分段。

如果您不希望上述活动。在片段初始化按钮,设置监听器是一样的。

 <按钮
    机器人:ID =@ + ID / btn_conferma// +失踪
 

然后

  @覆盖
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,
        捆绑savedInstanceState){

   查看查看= inflater.inflate(R.layout.fragment_rssitem_detail,
    集装箱,假);
   Button按钮=(按钮)view.findViewById(R.id.btn_conferma):
   button.setOnClickListener(新OnClickListener()
   {
             @覆盖
             公共无效的onClick(视图v)
             {
                // 做一点事
             }
   });
   返回查看;
}
 

I'm trying to invoke the method in my onClick (View v) XML, but does not work with Fragment. This is the error.

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'


public void insertIntoDb(View v) {
...
} 




<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" />

解决方案

Your activity must have

public void insertIntoDb(View v) {
...
} 

not Fragment .

If you don't want the above in activity. initialize button in fragment and set listener to the same.

<Button
    android:id="@+id/btn_conferma" // + missing

Then

@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;
}

这篇关于Android的碎片的onClick按钮的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆