2014-02-09 72 views
0

,我有以下代碼如果else語句的Android(第一,如果總是激活)

@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(補欄)& & 「19」 .equals(umur)的答案是總是「perempuan」而不是「拉基,拉基」 .. 誰能幫我請??? 對不起,我的英語不好:d

+1

您是否嘗試調試並觀察變量? –

+0

在您的if語句之前,請執行以下操作:'Toast.makeText(MainActivity.this,「我選擇:」+ bulan +「和」+ umur,Toast.LENGTH_SHORT).show();'。然後你可以自己弄清楚。 – Blundell

+0

你可以通過把Log放在你得到這兩個值的位置後檢查bulan&umur的值,然後檢查一下umar&bulan到底是什麼。 –

回答

0

原因它給你相同的答案是,因爲你只問什麼在「onCreate」中被選中。你的onClick不會詢問在點擊時選擇了什麼,它只是告訴你在創建活動時選擇了什麼。

解決方案:將邏輯移動到查詢旋鈕到onClick內部。

+0

謝謝你的建議先生...我欠你的:D – monikgilang

1

您從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(); 
     } 
    }); 
} 
0

我認爲這個問題是有關您的代碼的「其他」塊。 'else'塊後我注意到了分號。請刪除分號並運行。