2017-10-14 2 views
0

私はアンドロイドで新しく、練習のために私は4つのスピナーと1つのボタンを取った。スピナー1の値はスピナー2の値を決定するなど、すべてのスピナー値を持つボタンをクリックするとトーストを表示したい。 すべてのスピナーの値がデフォルトの場合、ボタンはハイライトされません。すべてのスピナーボタンで有効な値を指定すると、自動的にハイライト表示されます。 私を助けてください、私はこの点を得るために何をすべきですか?ここでスピナーに有効な値を与えるまでボタンをハイライト表示する方法は?

........私のコードです
sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      country = String.valueOf(sp1.getSelectedItem()); 
      if (country.equals("USA")) { 
       ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item, states_usa); 
       adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp2.setAdapter(adapter1); 
      }else if (country.equals("India")){ 
       ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item, states_india); 
       adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp2.setAdapter(adapter1); 
      } 
     } 
     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

    sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      state = String.valueOf(sp2.getSelectedItem()); 
      if (state.equalsIgnoreCase("California")) { 
       ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item, cities_california); 
       adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp3.setAdapter(adapter2); 
      } else if (state.equals("Rajasthan")) { 
       ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(getApplicationContext(), 
         android.R.layout.simple_spinner_item, cities_rajasthan); 
       adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       sp3.setAdapter(adapter2); 
      } 
     } 
     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

    sp3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      city = String.valueOf(sp3.getSelectedItem()); 
      ArrayAdapter<String> adapter3; 
      switch (city) { 
       case "Los Angeles": 
        adapter3 = new ArrayAdapter<String>(getApplicationContext(), 
          android.R.layout.simple_spinner_item, areas_losangeles); 
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp4.setAdapter(adapter3); 
        break; 
       case "San Francisco": 
        adapter3 = new ArrayAdapter<String>(getApplicationContext(), 
          android.R.layout.simple_spinner_item, areas_sanfrancisco); 
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp4.setAdapter(adapter3); 
        break; 
       case "Jaipur": 
        adapter3 = new ArrayAdapter<String>(getApplicationContext(), 
          android.R.layout.simple_spinner_item, areas_jaipur); 
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp4.setAdapter(adapter3); 
        break; 
       case "Ajmer": 
        adapter3 = new ArrayAdapter<String>(getApplicationContext(), 
          android.R.layout.simple_spinner_item, areas_ajmer); 
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        sp4.setAdapter(adapter3); 
        break; 
      } 

     } 
     @Override 
     public void onNothingSelected(AdapterView<?> adapterView) { 

     } 
    }); 

    resultButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (!sp1.getSelectedItem().toString().equals("Country") && !sp2.getSelectedItem().toString().equals("State") 
        && !sp3.getSelectedItem().toString().equals("City") && !sp4.getSelectedItem().toString().equals("Area")) 
      { 
       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(); 
      } else { 
       resultButton.setEnabled(false); 
      } 
     } 
    }); 

答えて

0

カスタムレイアウトを持つスピナーアダプタをカスタマイズします。レイアウトでTextViewを使用し、ボタンクリックリスナのタップでエラーを設定します。

button.setOnClickListener{ 

    TextView spinnerText= (TextView)yourSpinner.getSelectedView(); 
    spinnerText.setError(""); 
    spinnerText.setTextColor(Color.RED);//It will just to highlight that this is an error 
    spinnerText.setText("your actual error text"); 

} 

私はうまくいきたいです!

関連する問題