我的活動實現了微調控件的OnItemSelected偵聽器。它有一個有趣的問題,即在活動顯示時觸發onItemSelected回調。所以我用一個旗幟破解解決它(我討厭它,但在這一點上,我只是想讓應用程序工作)。微調不會響應點擊...即使onItemSelected被調用?
奇怪的是,即使回調在活動開始時被調用,我的實際觸摸選擇也不起作用。我可以觸摸列表,打開它,查看陣列適配器中的字符串,甚至可以觸摸它以使其消失 - 但回調從未被調用。
我的代碼:
public class MyActivity extends Activity implements OnItemSelectedListener {
…
private ArrayList<String> mMyTypes = null;
private ArrayAdapter<String> mMyAdapter = null;
private Spinner mMyTypeSpinner = null;
// hack for spinner
boolean isFirstRunWithSpinner = true;
在的onCreate():
mMyTypeSpinner = (Spinner) findViewById(R.id.my_activity_spinner);
mMyTypes = new ArrayList<String>();
mMyTypes.add("Test string");
mMyAdapter = new ArrayAdapter<String>(this, R.layout.custom_spinner_style, mMyTypes);
mMyAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mMyTypeSpinner.setAdapter(mMyAdapter);
// spinner listener
mMyTypeSpinner.setOnItemSelectedListener(this);
回調:
@Override
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
Toast
.makeText(ConfirmEditActivity.this, "Selected", Toast.LENGTH_LONG)
.show();
if(isFirstRunWithSpinner) { isFirstRunWithSpinner = false; return; }
…
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
Toast
.makeText(ConfirmEditActivity.this, "Nothing", Toast.LENGTH_LONG)
.show();
}
的吐司右圖所示顯示在活動時,但是當我選擇微調器中的項目,微調控制器解散並且不再顯示麪包(更不用說c中的其餘代碼allback無法執行)。
是否有觀察?
我真的希望這個簡單的東西...
當我添加多個項目的項目列表,他們是可點擊的,但第一個不是... – 2010-07-23 15:42:42
我目前面臨同樣的問題?你現在是否找到了解決方案? – KarlKarlsom 2012-02-01 15:34:53
我已經在下面發佈了您的問題的答案。 – MrMaffen 2013-02-23 23:56:27