2014-05-19 35 views
0

我有一个显示三个旋转器的android活动。同样的三个人有相同的信息可供选择,因为你应该选择五件中的三件。我想要做的是根据现在选择的内容显示信息。例如,如果在第一个微调中我选择了“硬币”,我不希望能够在左边的两个微调中选择硬币,如果在第二个微调中选择了“Capital”,我不想显示大写和硬币最后一个。如何保存旋转器之间的显示信息android

这是我对活动的XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/LinearLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:background="#449def" 
     android:gravity="center_horizontal" > 

     <TextView 
      android:id="@+id/typeDrinks" 
      style="@style/textStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Select three question for ask" 
      android:textSize="22sp" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/LinearLayout" > 

     <Spinner 
      android:id="@+id/spinner_type1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="8sp" 
      android:gravity="center" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/textRangeOfPrices" 
     style="@style/textStyle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="10dp" 
     android:background="#449def" 
     android:gravity="center" 
     android:text="Select another one" 
     android:textSize="22sp" /> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textRangeOfPrices" 
     android:orientation="horizontal" > 

     <Spinner 
      android:id="@+id/spinner_type2" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="8sp" 
      android:gravity="center" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/textViewDistance" 
     style="@style/textStyle" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/linearLayout2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="10dp" 
     android:background="#449def" 
     android:gravity="center" 
     android:text="The last one" 
     android:textSize="22sp" /> 

    <LinearLayout 
     android:id="@+id/linearLayout3" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/textViewDistance" 
     android:orientation="horizontal" > 

     <Spinner 
      android:id="@+id/spinner_type3" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="8sp" 
      android:gravity="center" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/buttonGenerateRestaurant" 
     style="@style/ButtonText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:background="@layout/blue_button" 
     android:onClick="generateQuery" 
     android:text="Generate" /> 

</RelativeLayout> 

这是我到目前为止的代码。有了这个代码出现在三个纺纱相同的信息,您可以选择三次同样的事情

/* 
     * this part of the code is for displaying the spinner with the selected 
     * choice 
     */ 
     spinnerType1 = (Spinner) findViewById(R.id.spinner_type1); 
     spinnerType2 = (Spinner) findViewById(R.id.spinner_type2); 
     spinnerType3 = (Spinner) findViewById(R.id.spinner_type3); 

     ArrayAdapter<CharSequence> adapterType1 = ArrayAdapter 
       .createFromResource(this, R.array.range_types, 
         android.R.layout.simple_spinner_item); 

     ArrayAdapter<CharSequence> adapterType2 = ArrayAdapter 
       .createFromResource(this, R.array.range_types2, 
         android.R.layout.simple_spinner_item); 

     ArrayAdapter<CharSequence> adapterType3 = ArrayAdapter 
       .createFromResource(this, R.array.range_type3, 
         android.R.layout.simple_spinner_item); 

     adapterType1 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     adapterType2 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     adapterType3 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     spinnerType1.setAdapter(adapterType1); 
     spinnerType2.setAdapter(adapterType2); 
     spinnerType3.setAdapter(adapterType3); 

     spinnerType1.setOnItemSelectedListener(this); 
     spinnerType2.setOnItemSelectedListener(this); 
     spinnerType3.setOnItemSelectedListener(this); 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     // TODO Auto-generated method stub 
     // An item was selected. You can retrieve the selected item using 
     // parent.getItemAtPosition(pos) 
     mType1 = (String) spinnerType1.getSelectedItem().toString(); 
     mType2 = (String) spinnerType2.getSelectedItem().toString(); 
     mType3 = (String) spinnerType3.getSelectedItem().toString(); 

    } 

这是我对范围

<string-array name="range_types"> 
    <item>Complete Name</item> 
    <item>Coin</item> 
    <item>Capital</item> 
    <item>Area(Km)</item> 
    <item>Political system</item> 
</string-array> 
<string-array name="range_types2"> 
    <item>Complete Name</item> 
    <item>Coin</item> 
    <item>Capital</item> 
    <item>Area(Km)</item> 
    <item>Political system</item> 
</string-array> 
<string-array name="range_type3"> 
    <item>Complete Name</item> 
    <item>Coin</item> 
    <item>Capital</item> 
    <item>Area(Km)</item> 
    <item>Political system</item> 
</string-array> 

我一直在寻找谷歌和stackoverflow,但我没有找到确切的我在找什么,或者只是我不知道如何正确地问它

非常感谢!

回答

0

我发现它正是我正在寻找。问题是我有一个ArrayAdapter,ArrayAdapter被一个数组初始化,将数组转换为一个无法修改的AbstractList(List)。

解决方法在初始化ArrayAdapter时使用ArrayList来代替使用数组。

String[] arrayShow = getResources().getStringArray(R.array.range_types); 

      ArrayList<String> lst = new ArrayList<String>(); 
      lst.addAll(Arrays.asList(arrayShow)); 


      final ArrayAdapter<String> adapterType1 = new ArrayAdapter<String>(
        this, android.R.layout.simple_spinner_item, lst); 

     adapterType1 
       .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 


     spinnerType1.setAdapter(adapterType1); 

spinnerType1.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, 
        int arg2, long arg3) { 
       // TODO Auto-generated method stub 
       adapterType2.remove(adapterType1.getItem(arg2)); 
       adapterType2.notifyDataSetChanged(); 

      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
       // TODO Auto-generated method stub 


      } 
     }); 

,我现在使用的这个问题,如果我想跟踪我所删除的将其添加到下一个微调等..

0

设置适配器动态旋转,在onitemselected方法