if else语句android(第一个如果总是激活)

时间:2014-02-09 14:59:45

标签: android if-statement android-spinner

我有以下代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    inputListenerKeSeleksiSpinner();
    seleksiItemSpinner();
}

// Menambahkan spinner1 agar ketika dipilih keluar toast
public void inputListenerKeSeleksiSpinner()
{
    spinner1=(Spinner)findViewById(R.id.spinner1);
    spinner1.setOnItemSelectedListener(new ListenerKhusus());
    spinner2=(Spinner)findViewById(R.id.spinner2);
    spinner2.setOnItemSelectedListener(new ListenerKhusus());
}

// Mengambil value dari Spinner
public void seleksiItemSpinner()
{
    spinner1=(Spinner)findViewById(R.id.spinner1);
    bulan=spinner1.getSelectedItem().toString();
    spinner2=(Spinner)findViewById(R.id.spinner2);
    umur=spinner2.getSelectedItem().toString();

    if("Januari".equals(bulan) && "18".equals(umur))
    {
        hasil="Perempuan";
    } else
    if("Januari".equals(bulan) && "19".equals(umur))
    {
        hasil="Laki-laki";
    };

    btnKirim=(Button)findViewById(R.id.btnKirim);

    btnKirim.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
            Toast.makeText(MainActivity.this, "Hasilnya adalah: " + hasil, Toast.LENGTH_LONG).show();
        }
    });
}

但如果我选择Januari“.equals(bulan)&&”19“.equals(umur),答案总是”perempuan“而不是”laki-laki“.. 任何人都可以帮我吗??? 对不起,我的英语不好:D

2 个答案:

答案 0 :(得分:1)

您在创建活动时从Spinners获取数据,因此无论Spinners默认选择了什么,您都可以获得。而是仅在单击按钮时从Spinners获取所选数据:

public void seleksiItemSpinner()
{
    btnKirim=(Button)findViewById(R.id.btnKirim);

    btnKirim.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
            bulan=spinner1.getSelectedItem().toString();
            umur=spinner2.getSelectedItem().toString();

            if("Januari".equals(bulan) && "18".equals(umur))
            {
                hasil="Perempuan";
            } else
            if("Januari".equals(bulan) && "19".equals(umur))
            {
                hasil="Laki-laki";
            };

            Toast.makeText(MainActivity.this, "Hasilnya adalah: " + hasil, Toast.LENGTH_LONG).show();
        }
    });
}

答案 1 :(得分:0)

它为您提供相同答案的原因是因为您只是询问“onCreate”中旋转器中选择的内容。你的onClick没有询问点击时选择了什么,它只是告诉你在创建活动时选择了什么。

解决方案:移动逻辑以查询微调器内的onClick。