2017-10-22 9 views
2

私はアンドロイドを初めて利用しています。詳細はわかりません。練習のために、私はスピナー、ボタン、およびその属性で操作していました。レイアウトで無効になっている場合、プログラムでボタンを有効にする方法

私は4つのスピナーを持ち、第1のスピナーは第2のスピナー値を決定します。私は4番目のスピナーの下に位置し、クリックリスナーを持つボタン(アンドロイド:enabled = "false" xml)を持っています。クリックイベントは、すべてのスピナーで選択したものについてのトーストを表示します。

すべてのスピナーの値は文字列配列であり、すべてのスピナーをチェックして検証したいと考えています。スピナーのいずれかが選択されていない場合は、配列の最初のインデックスが有効になり、そうでない場合は無効になります。

何度も試してみましたが、期待した結果が得られませんでした。誰も私の問題を解決するのに役立つことができますか?ここで

は、ボタンやスピナー検証のための私のコードです:

public boolean isDefaultValue(Spinner spinner){ 
    if (spinner.getSelectedItemPosition() == 0){ 
     resultButton.setEnabled(false); 
    } else { 
     resultButton.setEnabled(true); 
    } 
    return false; 
} 
‎ 
resultButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (isDefaultValue(sp4)) { 
       Toast.makeText(getApplicationContext(), "Country : " + sp1.getSelectedItem().toString() + "\n" + 
         "State : " + sp2.getSelectedItem().toString() + "\n" + 
         "City : " + sp3.getSelectedItem().toString() + "\n" + 
         "Area : " + sp4.getSelectedItem().toString(), Toast.LENGTH_LONG).show(); 
      } 
} 
}); 
+0

**いずれかのスピナーが選択されていない場合は、配列の最初のインデックス**これはどういう意味ですか? – Jerrol

+0

配列インデックスは常に0から始まりますが、コードはselectedItemPosition == 0;のときにボタンを無効にしています。あなたはすべてのスピナーのため – Jerrol

+0

は、さらにより多くのあなたは、唯一のスピナーをチェックされています。 } がtrueを返します。 }まだ動作していません、解決方法を教えてください。私の電子メールは[email protected] –

答えて

0

あなたの方法isDefaultValue(Spinner)は常にかかわらず、ボタンの有効化されているかいないfalseを返し、ひいてはトーストを上げることはありません。

また、あなたの説明が読み取ります

任意のそれらのスピナーは、アレイの第一インデックスを選択されていない場合は、ボタンが

を有効にされますが、方法isDefaultValue(Spinner)によると、ボタンが有効になりますスピナーが配列(0)の第1のインデックスにないときにのみ。

+0

パブリックブールisDefaultValue(スピナースピナー){ 場合(spinner.getSelectedItemPosition()== 0){ resultButton.setEnabled(false)を確認したいながら –

+0

です。もう一つの欠陥が気づきました。あなたのボタンはxmlごとに有効になっていません。これはonClickイベントを発生させません。ボタンを有効にするメソッドがonClickメソッド内にあるため、ボタンが無効になるデッドロックです。 –

+0

sp4.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView adapterView、ビュービューは、I、長いL){ IF(sp4.getSelectedItemPosition()== 0){ resultButton.setEnabled(false)を、 }他{ resultButton.setEnabled(TRUE); }} int型 resultButton。 setOnClickListener(new View.OnClickListener(){ これは素晴らしい機能です。ありがとうございます。 –

関連する問題