Android:如何根据spinner&的用户输入执行if-else语句单选按钮

时间:2011-06-07 14:19:11

标签: android

我正在尝试根据用户点击的内容编写if-else语句。这是我的main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<TextView 
android:text="Food #1:" 
android:textSize="20dp" 
android:textStyle="bold"
android:layout_height="wrap_content" 
android:id="@+id/txt_comparing" 
android:layout_width="wrap_content"
android:layout_centerHorizontal="true">
</TextView>

<Spinner 
android:layout_height="wrap_content" 
android:layout_width="match_parent"
android:layout_below="@+id/txt_comparing"
android:id="@+id/spn_1">
</Spinner>

    <RadioGroup
android:id="@+id/canteen1"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/spn_1" >

<RadioButton
    android:id="@+id/option_0"
    android:text="ITAS  "/>
<RadioButton
    android:id="@+id/option_1"
    android:text="Design "/>
<RadioButton
    android:id="@+id/option_2"
    android:text="Engineering "/>

</RadioGroup>

<TextView 
android:text="Food #2:" 
android:textSize="20dp" 
android:layout_centerHorizontal="true"
android:textStyle="bold"
android:layout_below="@+id/canteen1"
android:layout_height="wrap_content" 
android:id="@+id/txt_and" 
android:layout_width="wrap_content">
</TextView>

<Spinner 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:layout_below="@+id/txt_and"
android:id="@+id/spn_2">
</Spinner>

<RadioGroup
android:id="@+id/canteen2"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/spn_2" >

<RadioButton
    android:id="@+id/option1_0"
    android:text="ITAS  "/>
<RadioButton
    android:id="@+id/option1_1"
    android:text="Design "/>
<RadioButton
    android:id="@+id/option1_2"
    android:text="Engineering "/>

</RadioGroup>

<Button 
android:id="@+id/btn_compare" 
android:text="   Compare   " 
android:textStyle="bold"
android:layout_alignParentBottom="true" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content"
android:layout_alignParentRight="true">>
</Button>

<Button 
android:text="  Clear   " 
android:layout_height="wrap_content" 
android:id="@+id/clear" 
android:layout_toLeftOf="@+id/btn_compare" 
android:layout_alignTop="@+id/btn_compare" 
android:layout_alignBottom="@+id/btn_compare" 
android:layout_width="wrap_content">
</Button>

在我的主java类中,如何根据用户点击的内容创建if-else语句?我已多次尝试和研究,但没有得到答案。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

你应该为每个可点击的视图(按钮)分配OnClickListener。
它可以是每个按钮的同一个监听器或新的不同实例。

如果是单个监听器,你可以实现按钮ID切换器并知道按下了哪个按钮 我花了一点时间准备插图:

OnClickListener listener = new OnClickListener() {

    @Override
    public void onClick(View view) {
    switch (view.getId()) {
            case R.id.button1:
                Toast.makeText(getApplicationContext(), "Button 1 pressed", Toast.LENGTH_SHORT).show();
            break;
            case R.id.button2:
                Toast.makeText(getApplicationContext(), "Button 2 pressed", Toast.LENGTH_SHORT).show();
            break;
        }

    }
};

((Button)findViewById(R.id.button1)).setOnClickListener(listener);
((Button)findViewById(R.id.button2)).setOnClickListener(listener);