2013-07-25 62 views
0

所以我一直在盡我所能,讓這個微調器能夠根據所做的選擇更改列表。例如改變說了微調致力於地板,壓制現貨微調時,會產生一組不同點:Android微調器特定列表

XML格式:

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="202dp" 
    android:layout_height="0dp" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_weight="0.49" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="New Reservation" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="First Name" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/Fname" 
      android:layout_width="129dp" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textPersonName" > 

      <requestFocus /> 
     </EditText> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Last Name" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/Lname" 
      android:layout_width="126dp" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textPersonName" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="License" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/License" 
      android:layout_width="126dp" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="number" /> 

     <Spinner 
      android:id="@+id/Garage" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:entries="@array/Garages" 
      android:prompt="@string/GaragePrompt" /> 

     <Spinner 
      android:id="@+id/Floor" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:entries="@array/Floors" 
      android:prompt="@string/FloorPrompt" /> 

     <Spinner 
      android:id="@+id/Spot" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:entries="@array/Spots" 
      android:prompt="@string/SpotPrompt" /> 

     <TextView 
      android:id="@+id/textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Date" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/Date" 
      android:layout_width="122dp" 
      android:layout_height="wrap_content" 
      android:inputType="date" /> 

     <TextView 
      android:id="@+id/textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Time" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <EditText 
      android:id="@+id/Time" 
      android:layout_width="122dp" 
      android:layout_height="wrap_content" 
      android:inputType="time" /> 

     <Button 
      android:id="@+id/Reserve" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="21dp" 
      android:text="Reserve" /> 

    </LinearLayout> 
</ScrollView> 

謝謝你的幫助。

回答

1

以下是根據另一個Spinner的選擇在Spinner上填充不同值的一種方法。

在以下情況下,Spots將通過選擇Floor微調器更改值。這是做它的一種方式,但可能不是最好的辦法...

聲明爲類變量...

private Spinner floor, spot; 
private ArrayAdapter<String> floorAdapter, spotAdapter; 

onCreate

floor = (Spinner) findViewById(R.id.Floor); 
spot = (Spinner) findViewById(R.id.Spot); 

// NOTE: 
// You can populate the lists below from a resource array as well using ArrayAdapter.createFromResource. 

List<String> floor = new ArrayList<String>(); 
floor.add("spot 1"); 
floor.add("spot 2"); 

List<String> spot1 = new ArrayList<String>(); 
spot1.add("spot1 item 1"); 
spot1.add("spot1 item 2"); 
spot1.add("spot1 item 3"); 

List<String> spot2 = new ArrayList<String>(); 
spot2.add("spot2 item 1"); 
spot2.add("spot2 item 2"); 
spot2.add("spot2 item 3"); 

floorAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, floor); 
floor.setAdapter(floorAdapter); 
floor.setOnItemSelectedListener(this); 

那麼你就在下面onItemSelectedfloor微調...

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    switch(position) { 
    case 0: 
     spotAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spot1); 
     spot.setAdapter(spotAdapter); 
     break; 
    case 1: 
     spotAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spot2); 
     spot.setAdapter(spotAdapter); 
     break; 
    default: 
     break; 
} 

正如我的男人如上所述,您也可以使用ArrayAdapter.createFromResource從數組中加載列表。

一切順利。

+0

我有點與次要部分混淆。如何將多個更改添加到微調列表中? –

+0

@macroquezada:你是什麼意思的中學部分?你的意思是'開關盒'嗎? – neo108

+0

我的意思是開關櫃是的。基本上我想換出一個數組列表與另一個。 –