Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮从片段内部单击侦听器_Android - Fatal编程技术网

Android 按钮从片段内部单击侦听器

Android 按钮从片段内部单击侦听器,android,Android,在使用活动时,我通常对button click事件的编程没有问题,但现在我正在研究片段,我无法使button click事件工作 我的代码: public class LoginFragment extends Fragment { Button btnCadastrar; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewG

在使用活动时,我通常对button click事件的编程没有问题,但现在我正在研究
片段
,我无法使button click事件工作

我的代码:

public class LoginFragment extends Fragment {

    Button btnCadastrar;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_login, container, false);
        btnCadastrar = (Button)view.findViewById(R.id.btn_cadastrar);
        btnCadastrar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btnCadastrar.setBackground(Drawable.createFromPath("#FFFFFF"));
                Toast.makeText( getContext(), "PIMBAAA", Toast.LENGTH_LONG).show();
            }
        });

        return inflater.inflate(R.layout.fragment_login, container, false);
    }
}  
如您所见,我正在膨胀
fragment\u login
,它有一个按钮:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient_1">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginEnd="30dp"
        android:layout_marginStart="30dp"
        android:background="@drawable/transp_white_rect"
        android:orientation="vertical"
        android:padding="20dp">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="Cadastrar"
            android:id="@+id/btn_cadastrar"
            android:padding="10dp"
            android:textColor="#FFFFFF"
            android:background="@color/light_blue"
            android:layout_gravity="center_horizontal"
        />
    </LinearLayout>
</RelativeLayout>

除了当我点击/按下按钮时不会发生任何事情之外,按钮似乎是不可点击的。
我需要一些帮助来理解它为什么不工作以及如何修复它。

查看您的碎片,您将看到名为2次的充气代码。 这意味着在您的代码上创建了2个fragment_登录的视图

return view
而不是

return inflater.inflate(R.layout.fragment_login, container, false);

因为它将返回一个新的fragment_登录视图对象

工作得很好!非常感谢。但是我不明白为什么
侦听器不工作。您创建了两个视图。您已将侦听器设置为创建的第一个视图,但该视图不可见。。在oncreate方法末尾返回的视图将由片段使用,而不是您设置的侦听器,这就是为什么单击不起作用。。把答案标记为正确。