簡體   English   中英

微調器可在2.3中工作,但不能在3.2中工作

[英]Spinner works in 2.3 but not 3.2

我已經使用帶有OnItemSelectedListeners的微調器在android 2.2(api8)下成功運行了一個應用程序。 它是用tarketSdkVersion = 8和minSdkVersion = 8構建的。我現在嘗試在3.2設備上運行它,但無法選擇微調器。 但是,它們確實使用默認的數組值填充,因此適配器似乎正在工作。 單擊微調器不會導致任何反應。 我嘗試使用tarketSdkVersion = 13和minSdkVersion = 13進行構建,但旋轉器仍然死了。 我使用稍微定制的微調器版本在multiline_spinner_dropdown_item.xml文件中實現“ wrap_content”。 從2.2開始,微調器是否存在兼容性問題?

我遇到了同樣的問題,我在2.2中使用了微調器,它在3.2中可用,但在3.2中不起作用,問題出在默認主題3.2上。 由於微調器無法正確顯示,因此只需在values / style中創建一個主題,然后將其應用於android.manifest文件中的活動即可。

我嘗試了.setEnabled(true),但是沒有用。 沮喪的是,我開始從main.java和layout.xml中刪除部分代碼,直到剩下一個微調器並開始工作為止。 在添加代碼和控件時,我發現位於TabHost / LinearLayout / TabWidget / FrameLayout內的ScrollView阻止了Spinners響應。 通過刪除Scrollview,旋轉器在3.2中工作。 出於某種原因,Scrollview在2.2中可用,但在3.2中不起作用。

您是否有機會改變微調器的可見性?

我有一個類似的問題,每次重新顯示微調setAdapter()時都必須調用setAdapter() ,否則它會受到點擊的影響。

您可以在https://github.com/nikclayton/android-squeezer/commit/7a148edf5f1b3eaca7718161de18254970290ce0上看到我對項目所做的更改,以解決此問題。

也許一些可見性問題? 您是否將ScrollView堆疊在微調項目顯示區域的頂部? 嘗試通過更改微調器的圖標或顏色(例如更改微調器)來使用不同的狀態,看看它們是否獲得click事件。 如果他們這樣做,那么可能與可見性有關。 如果他們不這樣做,那可能還有其他事情。 一些代碼示例可以幫助:)

我有一個類似的問題。 這是因為Android 3.2及更高版本的默認主題。

比較簡單的解決方案是使用自定義微調器,或使用相同的背景色或圖片,例如:

android:background="@drawable/spinner"

鏈接將幫助您進行自定義微調。

您是否嘗試將微調器設置為啟用狀態?

spinner.setEnabled(true);

雖然很奇怪,默認情況下禁用了它。 您的症狀確實描述了一個禁用的微調器

奇怪的是,我嘗試了另一款在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一起運行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM