2016-02-14 195 views
2

我正在製作一個android時間表應用程序,並且我有兩個允許用戶選擇開始時間和演講持續時間的旋鈕。Android微調器選擇禁用另一個微調器中的選擇

沒有講座可以晚於6PM完成,但持續時間微調允許講座持續長達3小時。我想要做的是,當用戶選擇4PM或5PM時,在開始時間,基於這個選擇,持續時間的選項是有限的。例如,如果選擇的開始時間是5PM,則持續時間不能超過1小時。

謝謝! 源代碼是從MainActivity.Java

public class MainActivity extends Activity 
{ 
    //Data types, inputs and buttons 
    private  EditText codeInput; 
    private  Spinner  dayInput; 
    private  Spinner  timeInput; 
    private  Spinner  durationInput; 
    private  Spinner  sessionInput; 
    private  EditText roomInput; 

    private  Button  addNewButton; 
    private  Button  displayTimetableButton; 

    //Creates the database handler 
    DatabaseHandler DBHandler; 

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

     //Find spinners and EditText elements in layout 
     codeInput  = (EditText) findViewById(R.id.CodeInput); 
     dayInput  = (Spinner) findViewById(R.id.DayInput); 
     timeInput  = (Spinner) findViewById(R.id.TimeInput); 
     durationInput = (Spinner) findViewById(R.id.DurationInput); 
     sessionInput = (Spinner) findViewById(R.id.SessionInput); 
     roomInput  = (EditText) findViewById(R.id.RoomInput); 

     //Find buttons in layout 
     addNewButton   = (Button) findViewById(R.id.AddNewButton); 
     displayTimetableButton = (Button) findViewById(R.id.DisplayTimetableButton); 

     addNewButton.setOnClickListener(new View.OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 
       //this method collects and adds all of the input data to the database 
       String  code  = codeInput.getText().toString(); 
       String  day   = dayInput.getSelectedItem().toString(); 
       String  time  = timeInput.getSelectedItem().toString(); 
       String  duration = durationInput.getSelectedItem().toString(); 
       String  session  = sessionInput.getSelectedItem().toString(); 
       String  room  = roomInput.getText().toString(); 

       DBHandler = new DatabaseHandler (getBaseContext()); 
       DBHandler.open(); 
       long DatabaseHandler = DBHandler.InsertData(code, day, time, duration, session, room); 

       //This toast appears when the module information is successfully added 
       Toast.makeText(getBaseContext(), "Module Added", Toast.LENGTH_LONG).show(); 

       //These set the EditText fields to blank, ready for the next input 
       codeInput  . setText(""); 
       roomInput  . setText(""); 

       //Close the database connection 
       DBHandler.close(); 
      } 
     }); 

     displayTimetableButton.setOnClickListener(new View.OnClickListener() 
     { 
      //This method starts the GridView activity when the button is pressed 
      @Override 
      public void onClick(View v) 
      { 
       Intent i = new Intent(MainActivity.this, GridViewActivity.class); 
       startActivity(i); 
      } 
     }); 
    } 
} 

選擇:

<string-array name="timeArray"> 
     <item> 9:00AM </item> 
     <item> 10:00AM </item> 
     <item> 11:00AM </item> 
     <item> 12:00AM </item> 
     <item> 1:00PM </item> 
     <item> 2:00PM </item> 
     <item> 3:00PM </item> 
     <item> 4:00PM </item> 
     <item> 5:00PM </item> 
    </string-array> 

<string-array name="durationArray"> 
     <item>1 Hour  </item> 
     <item>2 Hours  </item> 
     <item>3 Hours  </item> 
    </string-array> 

回答

0

你可以跟蹤選定的項目,並使用事件setOnItemSelectedListener。相應地更改第二個Spinner項目。