我想開發一個應該在帶有外部鍵盤的設備上運行的 Andorid 應用程式。用戶應該能夠使用回車鍵瀏覽表單。現在,我有一個 Spinner 和一個按鈕的問題。
將焦點從 Spinner 轉移到 Button 的唯一方法(我發現)是使用setOnItemSelectedListener:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
root.findViewById(R.id.button).requestFocus();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {}
});
當用戶從 Spinner 中選擇另一個專案而不是當前值時,這會起作用。但是,當用戶打開對話框(用回車),然后不選擇另一個值(但按回車確認當前選擇)時,它不起作用。我猜OnItemSelected當值不變時不會觸發 -Event 。
任何人都知道我如何實作它?
uj5u.com熱心網友回復:
由于onItemSelected如果您不更改選擇,則不會呼叫微調器中的 ,那么您將不得不執行以下操作
- 通過向微調器添加默認值(如“請選擇”),強制用戶從微調器中選擇某些內容。因此,如果他沒有選擇,您也可以顯示一些錯誤訊息,最終您的
onItemSelected偵聽器將被呼叫。
uj5u.com熱心網友回復:
我最終使用了這個答案中的解決方案:(它擴展了 Spinner 類)
再次選擇當前所選專案時,如何在 Android Spinner 中獲取事件?
然后,可以將焦點轉移到下一個專案
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
root.findViewById(R.id.Button).requestFocus();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/352920.html
標籤:爪哇 安卓 形式 旋转器 android-微调器
