未调用Android onClick方法

时间:2013-03-20 00:14:10

标签: android xml button onclick

我将onclick方法添加到fragment2.xml

中的按钮
   <Button
        android:id="@+id/getTextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kliknij do fragment 1"
        android:onClick="onClick" />

然后在Fragment2.java中定义了这个方法

public void onClick(View view){}

但是当我点击它时,应用程序崩溃了?什么是错的

下面的XML和java文件
package com.example.fragments;

import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class Fragment2 extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance){
        Log.d("Fragment 2", "metoda");
        return inflater.inflate(R.layout.fragment2, container, false);
    }

    public void onClick(View view){}

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FFFF00" >

    <TextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Fragment 2"
        android:textColor="#0000FF"
        android:textSize="25sp"/> <!-- moze byc px dp sp -->

    <Button
        android:id="@+id/getTextButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Kliknij do fragment 1"
        android:onClick="onClick" />

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

将在布局inflater的上下文中调用onClick函数。

尝试将onClick函数放在Activity而不是Fragment中,它应该可以正常工作。

之前我有一个similar problem

答案 1 :(得分:0)

由于某些未知原因,我遇到了类似的问题,我在XML上声明的onClick在某些设备上工作,并且在其他设备上没有工作

我指定了

OnClickListener

到同一个视图,在这个监听器中我调用了

activity.onClick(view)

手动,它有效

android !!!!

中的SILLY错误

答案 2 :(得分:0)

在我的情况下,拥有&#34; onClick&#34;关于活动的功能,我只需要清理项目...... 之后,来自xml的onClick调用工作。