简体   繁体   English

在Android片段视图和按钮单击中使用Spinner

[英]Using spinner in android fragment view and button click

I am a newbie programmer in android.I am trying to develop a simple paternity blood test.The logic is like this.I have three spinners and blood group A,B,AB and O will be listed into the spinner.The user have to chose blood type from A,B,AB or O for child,mother and father and then click submit button.The button will do some matching and produce a string result.I have tried several methods whichI found on internet. 我是android的新手程序员。我正在尝试开发一个简单的亲子鉴定血液测试。逻辑是这样的。我有三个微调器,并且血液组A,B,AB和O将列在微调器中。用户必须从A,B,AB或O中为孩子,母亲和父亲选择血型,然后单击Submit按钮。该按钮将进行一些匹配并产生字符串结果。我尝试了几种在Internet上找到的方法。 But still unable to use button click function. 但是仍然无法使用按钮点击功能。 Here is my code.Plz correct my mistake .Thanks. 这是我的代码。请更正我的错误。谢谢。

<?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>

Fragments code: 片段代码:

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) {

            }
        });
    }
}

Try onClickListener for your button: 尝试onClickListener作为按钮:

btn_paternity.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

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

        }
    });

I have made some changes in your code so try this. 我对您的代码进行了一些更改,请尝试执行此操作。

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) {

            }
        });

    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM