Có cách nào để sử dụng tiện ích con NumberPicker Android để chọn chuỗi thay vì số nguyên không?Sử dụng tiện ích NumberPicker với các chuỗi
Trả lời
NumberPicker picker = new NumberPicker(this);
picker.setMinValue(0);
picker.setMaxValue(2);
picker.setDisplayedValues(new String[] { "Belgium", "France", "United Kingdom" });
String value = String.valueOf(picker.getValue());
Bạn có thể có ý nghĩa khác, nhưng không rõ ý bạn là gì.
CẬP NHẬT:
Bạn có thể giả mạo nó bằng cách thiết lập định dạng của riêng bạn:
CountryFormatter implements Formatter {
public String toString(int value) {
switch(value) {
case 0:
return "England";
case 1:
return "France";
}
return "Unknown";
}
}
picker.setFormatter(new CountryFormatter());
getValue() vẫn sẽ trả về một int, vì vậy bạn có thể muốn để ánh xạ tên nước để id của họ.
thêm: Việc thực hiện NumberPicker có:
public void setRange(int start, int end, String[] displayedValues)
Mà dường như để làm một công việc tốt hơn về những gì bạn muốn thì định dạng trên .. mặc dù nó không được đề cập trong tài liệu như vậy có lẽ isn' t phần của api công
Tôi muốn sử dụng nó để chọn ví dụ một quốc gia. Cũng giống như Spinner Widget, nhưng không mở thêm khung ở phía dưới để chọn giá trị. – timoschloesser
Cập nhật câu trả lời, tuy nhiên có thể có những cách tốt hơn để liệt kê các quốc gia hơn là cố gắng hack NumberPicker để làm điều này. – FunkTheMonk
@FunkTheMonk Tôi không thể tìm thấy phương thức 'setRange()' này trong tài liệu! Bất kỳ ý tưởng tại sao? – iTurki
NumberPicker numberPicker = new NumberPicker(this);
String[] arrayString= new String[]{"hakuna","matata","timon","and","pumba"};
numberPicker.setMinValue(0);
numberPicker.setMaxValue(arrayString.length-1);
numberPicker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
// TODO Auto-generated method stub
return arrayString[value];
}
});
hy vọng rằng sẽ giúp!
thử giải pháp này, có thể giúp bạn
NumberPicker pickers = new NumberPicker(this);
String[] arrayPicker= new String[]{"abc","def","ghi","jkl","mno"};
//set min value zero
pickers.setMinValue(0);
//set max value from length array string reduced 1
pickers.setMaxValue(arrayPicker.length - 1);
//implement array string to number picker
pickers.setDisplayedValues(arrayPicker);
//disable soft keyboard
pickers.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
//set wrap true or false, try it you will know the difference
pickers.setWrapSelectorWheel(false);
//create button to test selected text string
btnPicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//get position (int) from number picker
int pos = pickers.getValue();
//get string from number picker and position
String selecPicker = arrayPicker[pos];
//test toast to get selected text string
Toast.makeText(context, selecPicker , Toast.LENGTH_SHORT).show();
}
});
- 1. Sử dụng Tiện ích mở rộng với Selenium (Python)
- 2. Cách sử dụng setBackground với Tiện ích con Android
- 3. Sử dụng các lớp tiện ích trong lập trình Android
- 4. Thư viện Java để xử lý chuỗi văn bản/chuỗi với các tiện ích unix/linux
- 5. Sử dụng GLEW để sử dụng các tiện ích mở rộng OpenGL trong Windows
- 6. Chỉ thị AngularJS - các phương pháp hay nhất khi sử dụng ngModel với tiện ích jQuery
- 7. Tiện ích WPF hữu ích
- 8. Theo dõi các lớp học tiện ích
- 9. Tiện ích Qt Nhanh so với Qt
- 10. Twitter Sử dụng lớp tiện ích đáp ứng Bootstrap Twitter
- 11. LibGDX và ScrollPane với nhiều tiện ích
- 12. Cách sử dụng tiện ích tab trong Android?
- 13. Mất tiện ích khi sử dụng FileReference tải xuống
- 14. kiểm tra các tiện ích dòng lệnh
- 15. jQuery trong tiện ích
- 16. Cách bắt đầu với các tiện ích Windows 7
- 17. PyQt - hiển thị tiện ích ở đầu tiện ích
- 18. QSplitter với một tiện ích kích thước cố định và một tiện ích kích thước biến?
- 19. Tôi nên sử dụng tiện ích nào cho các tệp có chứa các đoạn HTML?
- 20. Các trường hợp sử dụng cho các tiện ích đồng thời Java
- 21. Hiển thị và Ẩn các tiện ích
- 22. Phương thức tiện ích - Truyền tệp hoặc chuỗi?
- 23. Backbone.js Tiện ích
- 24. Khi nào nên sử dụng tiện ích kết hợp so với phạm vi được đặt tên?
- 25. SWT/JFace: xóa các tiện ích
- 26. Sử dụng lại các điều khiển và tiện ích của Backbone.js
- 27. Sử dụng Tiện ích mở rộng WCF Ninject với Dịch vụ Web WCF
- 28. Python có bộ công cụ GUI đa nền tảng sử dụng các tiện ích gốc không?
- 29. Dễ dàng sử dụng các tiện ích con bị cô lập trên đường ray
- 30. Lớp tiện ích tĩnh với bối cảnh/hoạt động - Android
Điều quan trọng đối với tôi là bạn phải đặt displayValues AND min và max trước khi nó hoạt động. Cảm ơn. –
Điều này tốt hơn nhiều so với câu trả lời được chọn ở trên. –
Nhưng khi tôi nhấp vào văn bản, bàn phím mềm bật ra và tôi có thể chỉnh sửa văn bản. – Confuse