2013-08-20 81 views
2

我希望有一個固定值始終顯示在微調器中,當點擊微調器時,這個值不應該列在下拉選擇中。 到現在爲止,我有以下android java set修復微調器的默認值

Definition XML: 
    <Spinner 
     android:layout_width="76dp" 
     android:layout_height="40dp" 
     android:id="@+id/right_shift" 
     android:layout_row="0" 
     android:layout_column="0"/> 

    Java: 
    final Spinner right = (Spinner) findViewById(R.id.right_shift) 
    ArrayList<String> rightShift = new ArrayList<String>(); 

    rightShift.add(" >>"); //THIS SHOULD BE THE VALUE THAT IS ALWAYS DISPLAYED 

    for (int i=0; i<5; i++) 
     ...//add other values to arraylist 

    ...//set values of arraylist to spinner 

    right.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      right.setSelection(0); 
     } 

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

但在微調時,點擊預選項目將再次在下拉菜單中顯示,不執行right.setselection(0)速度不夠快,所以我仍然可以看到所選項目約0.5秒...還有其他更簡單的方法來執行此操作嗎?

+0

如果你不希望它是可選擇的,但只是顯示當它第一次顯示,然後你可以使用[android:提示](http://developer.android.com/reference/android/widget/TextView.html #attr_android:hint)在你的xml中使用'Spinner'使用的'TextView'。 – codeMagic

+0

哪個TextView?我只是在GridLayout中定義瞭如上所述的Spinner? – wasp256

+0

我相信您的問題已經回答[這裏] [1] [1]:http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with- initial-text-select-one –

回答

2

你可以添加 android:prompt =「>>」 在xml和java中設置微調器的默認位置爲-1。

+1

'android:prompt =「>>」'給我錯誤'錯誤:Gradle:String types not allowed',以及如何設置java中的默認位置? – wasp256

+0

對不起,我的錯,在strings.xml文件中添加了String提示符,並在java中設置了spinner.setSelected(-1); –