在android片段视图中使用微调器并单击按钮

时间:2017-06-08 11:16:25

标签: android button spinner

我是android的新手程序员。我正在尝试开发一个简单的亲子验血。逻辑是这样的。我有三个旋转器,血型A,B,AB和O将被列入旋转器。用户必须为孩子,母亲和父亲选择A,B,AB或O的血型,然后点击提交按钮。按钮会做一些匹配并产生一个字符串结果。我尝试了几种我在互联网上找到的方法。但仍然无法使用按钮点击功能。 这是我的代码.Plz纠正了我的错误。谢谢。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:text="TextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_paternity"
            android:layout_centerHorizontal="true"
            android:gravity="center_horizontal"
            android:layout_marginTop="52dp"
            android:id="@+id/paternity_ans" />

        <TextView
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:id="@+id/textView6"
            android:text="Father"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            android:layout_width="100dp"
            android:layout_above="@+id/childblds"
            android:layout_centerHorizontal="true" />

        <TextView
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:layout_marginTop="53dp"
            android:id="@+id/textView5"
            android:text="Child "
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"

            android:layout_width="100dp"
            android:layout_marginRight="15dp"
            android:layout_marginEnd="15dp"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/btn_paternity"
            android:layout_toStartOf="@+id/btn_paternity" />

        <Spinner
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:spinnerMode="dialog"
            android:id="@+id/dadblds"
            android:dropDownWidth="match_parent"
            android:layout_toLeftOf="@+id/textView4"
            android:layout_toStartOf="@+id/textView4"
            android:layout_alignBottom="@+id/childblds"
            android:layout_alignTop="@+id/childblds" />

        <Spinner
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:id="@+id/childblds"
            android:spinnerMode="dialog"

            android:dropDownWidth="match_parent"
            android:layout_marginTop="13dp"

            android:layout_below="@+id/textView5"
            android:layout_alignLeft="@+id/textView5"
            android:layout_alignStart="@+id/textView5" />

        <Spinner
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:id="@+id/momblds"
            android:spinnerMode="dialog"
            android:entries="@array/paternitybldtype"
            android:dropDownWidth="match_parent"
            android:layout_alignTop="@+id/dadblds"
            android:layout_alignLeft="@+id/textView4"
            android:layout_alignStart="@+id/textView4" />

        <Button
            android:text="Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_paternity"
            android:layout_below="@+id/dadblds"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="35dp" />

        <TextView
            android:layout_height="wrap_content"
            android:id="@+id/textView4"
            android:gravity="center_horizontal"

            android:text="Mother"
            android:textAppearance="@style/TextAppearance.AppCompat.Medium"
            android:layout_width="100dp"
            android:layout_marginLeft="9dp"
            android:layout_marginStart="9dp"
            android:layout_above="@+id/childblds"
            android:layout_toRightOf="@+id/textView6"
            android:layout_toEndOf="@+id/textView6" />
    </RelativeLayout>
</LinearLayout>

片段代码:

public class Paternitytest extends Fragment {


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

        final View view = inflater.inflate(R.layout.paternitytestlo, container, false);
        final Button setItem = (Button) view.findViewById(R.id.btn_paternity);
        final TextView txt1 = (TextView) view.findViewById(R.id.paternity_ans);

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

                //Some if else statement will be applied here by using String c, f and m
            }
        });

        return view;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        Spinner childspinner = (Spinner) view.findViewById(R.id.childblds);
        Spinner dadspinner = (Spinner) view.findViewById(R.id.dadblds);
        Spinner momspinner = (Spinner) view.findViewById(R.id.momblds);

        // Spinner Drop down elements
        String[] categories = {"A", "B", "O", "AB",};

        // Creating adapter for spinner
        ArrayAdapter adapter = new ArrayAdapter(
                getActivity().getApplicationContext(), android.R.layout.simple_list_item_1, categories);

        // Drop down layout style - list view with radio button
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        childspinner.setAdapter(adapter);
        dadspinner.setAdapter(adapter);
        momspinner.setAdapter(adapter);

        // Spinner click listener
        childspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                String c = parent.getItemAtPosition(position).toString();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

        dadspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {

                String f = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

        momspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {
                String m = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
    }
}

2 个答案:

答案 0 :(得分:0)

尝试使用onClickListener作为按钮:

btn_paternity.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            String mom = momblds.getSelectedItem().toString();

        }
    });

答案 1 :(得分:0)

我已对您的代码进行了一些更改,请尝试此操作。

public class Paternitytest extends Fragment {

    private String childSpinnerString, momSpinnerString, dadspinnerString;

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

        final View view = inflater.inflate(R.layout.paternitytestlo,
                container, false);

        final Button setItem = (Button) view.findViewById(R.id.btn_paternity);

        final TextView txt1 = (TextView) view.findViewById(R.id.paternity_ans);


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

                    //Some if else statement will be applied here by using String c, f and m

                    Log.d("Blood groups- ", "Child - " + childSpinnerString + " Mom - " + momSpinnerString + " Dad - " + dadspinnerString);

                }
         });


        return view;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        Spinner childspinner = (Spinner) view.findViewById(R.id.childblds);
        Spinner dadspinner = (Spinner) view.findViewById(R.id.dadblds);
        Spinner momspinner = (Spinner) view.findViewById(R.id.momblds);


        // Spinner Drop down elements
        String[] categories = {"A", "B", "O", "AB",};

        // Creating adapter for spinner
        ArrayAdapter adapter = new ArrayAdapter(
                    getActivity().getApplicationContext(), android.R.layout.simple_list_item_1, categories);


        // Drop down layout style - list view with radio button
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        childspinner.setAdapter(adapter);
        dadspinner.setAdapter(adapter);
        momspinner.setAdapter(adapter);


        // Spinner click listener
        childspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {
                childSpinnerString = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
        dadspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {

               dadspinnerString = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
        momspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {
              momSpinnerString  = parent.getItemAtPosition(position).toString();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

    }
}