2012-03-07 56 views
2

我一直在使用紡紗用OnItemSelectedListeners已經成功運行在Android 2.2的(api8)的應用程序。它是用tarketSdkVersion = 8和minSdkVersion = 8構建的。我現在試圖在3.2設備上運行它,但不能選擇spinners。然而,它們使用默認的數組值填充,所以適配器似乎正在工作。點擊旋轉器不會產生任何反應。我試着用tarketSdkVersion = 13和minSdkVersion = 13來建造,但是紡紗人員仍然死亡。我使用稍微定製的微調器版本來實現multiline_spinner_dropdown_item.xml文件中的「wrap_content」。從2.2開始,與spinners有兼容性問題嗎?微調工作在2.3而不是3.2

+0

有什麼錯誤?如果是這樣,請發佈堆棧跟蹤 – kosa 2012-03-07 19:00:44

+0

沒有錯誤,實際上應用程序控件的其餘部分工作...仍然是旋轉器不響應點擊。在調試中,OnItemSelectedListeners不會觸發。 – 2012-03-07 19:24:28

+0

你可以請張貼一些你的代碼嗎?所以我可以試試.... – Scorpion 2012-03-13 06:32:46

回答

2

我試過.setEnabled(真),但沒有奏效。令人沮喪的是,我開始從main.java和layout.xml中刪除部分代碼,直到單個微調器離開並工作。當我添加了代碼和控件時,我發現在TabHost/LinearLayout/TabWidget/FrameLayout中嵌套的ScrollView阻止了Spinner響應。通過刪除滾動視圖,Spinners在3.2中工作。由於某些原因,Scrollview在2.2中工作,但不是3.2。

0

有作爲啓用你嘗試設置的微調?

spinner.setEnabled(true); 

雖然這將是奇怪的,它是默認禁用。你的症狀描述禁用微調雖然

1

也許有些知名度的問題? 您是否將旋轉視圖堆疊在旋轉器項目顯示區域的頂部? 嘗試通過改變它們的圖標或顏色來爲紡紗器使用不同的狀態,並查看它們是否獲得點擊事件。如果他們這樣做,那麼它可能與可見度有關。如果他們不這樣做,那可能是別的。 一些代碼示例可以幫助:)

+0

奇怪的是,我嘗試了另一個我的應用程序,它在2.2上很好用。當我將它安裝在3.1平板電腦或模擬器上時,onClick事件不會觸發。這次沒有紡紗工,但聽衆也不工作! – 2012-03-16 23:14:41

0

奇怪的是,我嘗試了另一個我的應用程序,它在2.2上效果很好。當我將它安裝在3.1平板電腦或模擬器上時,onClick事件不會觸發。這次沒有紡紗工,但聽衆也不工作!下面是一些代碼:

//In onCreate: 

//setup listeners 
rbSlab = (RadioButton)findViewById(R.id.rbSlab); 
rbBeam = (RadioButton)findViewById(R.id.rbBeam); 
rbSlab.setOnClickListener(radio_listener); 
rbBeam.setOnClickListener(radio_listener); 
etFpc.setOnEditorActionListener(this); 
etFy.setOnEditorActionListener(this); 
etBw.setOnEditorActionListener(this); 
etDp.setOnEditorActionListener(this); 
etMu.setOnEditorActionListener(this); 
... 
}//end onCreate 

//In Main body of app: 
//for radio buttons 
private OnClickListener radio_listener = new View.OnClickListener() 
{ //@Override 
    public void onClick(View v) { 
     DoCalcs(); 
    }//onClick 
}; 

//for edittext 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
    { if ((actionId == EditorInfo.IME_ACTION_DONE) || //if DONE button pushed 
      ((event.getAction()==KeyEvent.ACTION_DOWN) &&   (event.getKeyCode() == KeyEvent.KEYCODE_ENTER))) //if ENTER button pushed 
    { 
     //do calcs 

     return(true); 
      } 
     else return(false); 
    } 

我已經建立了這個與目標API 8分鐘API 8,並與目標API 14分8,並且當一個API 8個聽衆做工精細安裝,但不與API 14!

2

我有同樣的問題,我在2.2中使用微調,它工作,但同樣不工作在3.2,問題是與默認主題3.2,它的全息。因此,微調器沒有正確顯示, 只需在值/樣式中創建主題,並將其應用於android.manifest文件中的活動。

0

我有一個類似的問題。這是因爲Android 3.2及以上版本的默認主題。

的簡單的解決方法是使用自定義的微調,或作出任何背景顏色或圖片的方式相同,例如:

android:background="@drawable/spinner" 

link將幫助您自定義微調。