Tôi cũng cần một giải pháp cho vấn đề này. Những gì tôi muốn làm là có một Spinner có phạm vi ngày với tùy chọn phạm vi tùy chỉnh.Các hàng sẽ giống như thế này:
10 Tháng 4 - Tháng 10
10 Tháng ba - 10 tháng tư
10 Tháng Hai - 10 Tháng Ba
Phạm vi Tuỳ chỉnh
Vấn đề là nếu người sử dụng chọn một tùy chỉnh phạm vi và sau đó muốn thay đổi phạm vi tùy chỉnh của họ, họ phải chọn một phạm vi khác và sau đó chọn tùy chọn phạm vi tùy chỉnh một lần nữa. Tôi muốn người dùng chỉ có thể chọn "Phạm vi tùy chỉnh" một lần nữa để hộp thoại tùy chỉnh phạm vi có thể được hiển thị lại.
Tôi đã xếp loại Spinner và tạo trình xử lý riêng của mình. Mã sẽ chuyển vùng chọn, nhưng sau đó ngay lập tức chuyển đổi nó để không có gì được chọn. Trong trình nghe của tôi, tôi chỉ bỏ qua bất kỳ vị trí nào nhỏ hơn 0.
Spinner chỉ hiển thị mục được chọn cuối cùng. Tôi đã tạo bộ điều hợp tùy chỉnh của riêng tôi và chỉ định những gì để hiển thị cho mỗi chế độ xem, nhưng điều đó không cần thiết. Đây là cách tôi phân loại Spinner.
package com.example.widget;
import android.content.Context;
import android.widget.Spinner;
public class DateRangeSpinner extends Spinner {
private ItemSelectionListener listener;
public DateRangeSpinner(Context context) {
super(context);
}
/**
* This listener will be fired every time an item is selected,
* regardless of whether it has already been selected or not.
*
* @param l
*/
public void setOnItemSelectedListener(ItemSelectionListener l) {
listener = l;
}
public void removeOnItemSelectedListener() {
listener = null;
}
@Override
public void setSelection(int position) {
setSelection(position, true);
}
@Override
public void setSelection(int position, boolean animate) {
if (listener != null) {
listener.onItemSelected(position);
}
super.setSelection(position, animate);
super.setSelection(-1, animate);
}
public interface ItemSelectionListener {
public void onItemSelected(int position);
}
}
Tôi hy vọng điều này sẽ hữu ích!
Ước gì tôi có thể upvote câu hỏi này 1000 lần. Và tôi ước có một câu trả lời tốt. Đã tìm kiếm hàng giờ để thử và vượt qua giới hạn ngu ngốc này. – aaronsnoswell
http://stackoverflow.com/a/11323043/2798289 – Govind