控制片段中的按钮

时间:2018-07-18 13:44:56

标签: java android android-fragments

我想从片段活动中的片段xml文件控制按钮。在其他活动中,我们可以通过findviewbyid方法轻松控制按钮,然后可以应用setonclicklistener。但是在这里片段如何访问按钮并应用onclicklistener方法。 我的Fragment.java

    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.LinearLayout;


    /**
     * A simple {@link Fragment} subclass.
     */
    public class QuoteTypeFragment extends Fragment {


        public QuoteTypeFragment() {
            // Required empty public constructor
        }

        LinearLayout  typeOne, typeTwo, typeThree, typeFour;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            View vv = inflater.inflate(R.layout.fragment_quote_type, container, false);
            return vv;
        }

    }

我的Fragment.xml

 <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#3f525e"
        tools:context=".QuoteTypeFragment">



    <Button
        android:id="@+id/submitbutton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Submit"/>

    </FrameLayout>

所以在这里我要控制fragment.java中的提交按钮。如何通过findviewbyid或findfragmentbyid来访问按钮。在fragment.java中,我在哪里使用该代码访问submitbutton。

3 个答案:

答案 0 :(得分:1)

在OnCreateView中

    Button button;

        @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {
                // Inflate the layout for this fragment
                View vv = inflater.inflate(R.layout.fragment_quote_type, container, false);

            button = vv.findViewById(R.id.submitbutton);

            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
            });

             return vv;
            }

答案 1 :(得分:0)

在您的 QuoteTypeFragment.java

1)使用视图投射小部件。 (view.findViewById())。

2)设置onClickistener。

3)实现View.OnClickListener和onClick方法。

public class QuoteTypeFragment extends Fragment implements View.OnClickListener {

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View vv = inflater.inflate(R.layout.fragment_quote_type, container, false);

        Button mSubmitButton = vv.findViewById(R.id.submitbutton);
        mSubmitButton.setonClickListener(this);

        return vv;
    }
}

@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.submitbutton:
                // Control the button
                break;
        }
}

答案 2 :(得分:0)

在片段活动中从片段XML文件控制按钮非常容易。

在您的 onCreateView 中使用这些行,

Button button; 

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // Inflate the layout for this fragment
    View vv = inflater.inflate(R.layout.fragment_quote_type, container, false);
    button = vv.view.findViewById(R.id.submitbutton);
    return vv;
}