2011-09-06 62 views
1

我在我的應用程序中使用了Spinners。他們工作正常,但有一個例外。我爲每個人設置了提示,但他們沒有顯示。我在onCreate期間將ArrayAdapters設置爲紡紗廠,我的猜測是setAdapter方法會自動將選擇設置爲位置0.有沒有辦法設置提示並使其按預期工作?安卓微調提示符不起作用

下面是一個代碼塊:

從佈局文件:

<Spinner android:id="@+id/selPunter" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:prompt="@string/select_quarterback_prompt" 
     android:layout_marginLeft="20sp" 
     android:layout_marginRight="20sp" /> 

從活動:

offenseList = new ArrayAdapter<PlayerVO>(this, 
             R.layout.select_item_closed, 
             gdm.getPlayersByTeamId(offenseId)); 
offenseList.setDropDownViewResource(R.layout.select_item); 
selKicker.setAdapter(offenseList); 
+0

對不起,我只是說我認爲這很有趣,你把它稱爲「代碼片」,因爲它聽起來像「codpiece」。 :) –

+0

哈哈,我很高興能夠笑出聲來。現在對我來說可能是一個答案? :) – srowley

+0

什麼東西沒有顯示?微調器下拉對話框的標題(在xml中稱爲提示)或下拉對話框本身? – yuku

回答

1

這似乎就算你把在onStart的OnItemSelectedListener(發生)活動的方法。

我爲此問題所做的工作是將默認消息放在資源數組的位置0(「選擇跳閘類型」)中。因此,當調用OnItemSelectedListener時,如果選擇位置0,則不執行任何操作。這裏是我的代碼:

mTripTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener(){ 

     @Override 
     public void onItemSelected(AdapterView<?> parent,View v,int position,long rowId) { 
      //boolean used for hiding spinner 
      boolean hideSpinner = true; 

      switch(position){ 
       case 0: 
        //nothing was selected - defualt "Select Trip Type" 
        hideSpinner = false; 
        break; 
       case 1: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.DELIVERY); 
        break; 
       case 2: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.START_OF_BREAK); 
        break; 
       case 3: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.END_OF_BREAK); 
        break; 
       case 4: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.START_OF_LUNCH); 
        break; 
       case 5: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.END_OF_LUNCH); 
        break; 
       case 6: 
        mCurrentStop.setStopType(Stop.STOP_TYPE.END_OF_TRIP); 
        break; 
      } 

      //display other data screens 
      displayData(hideSpinner); 
     } 
     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      mCurrentStop.setStopType(Stop.STOP_TYPE.DELIVERY); 
     } 
    });