0

我将 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>
4

3 回答 3

1

将在布局充气器的上下文中调用的 onClick 函数。

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

我之前也遇到过类似的问题

于 2013-03-20T00:19:31.730 回答
0

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

我分配了一个

OnClickListener

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

activity.onClick(view)

手动,它工作

android中的一个愚蠢的错误!!!!

于 2015-09-10T20:49:37.240 回答
0

在我的情况下,在活动中具有“onClick”功能,我只需要清理项目......之后来自 xml 的 onClick 调用工作。

于 2016-08-03T17:15:13.230 回答