我无法在沙发或谷歌上找到任何东西!所以我需要你的帮助! 我想点击我的(空)微调器,所以我得到一个日期或时间戳对话框。我无法找到任何方法来解决这个问题。这些是我现在的片段:
只是我的两个对象:
DatePickerDialog dDialog = new DatePickerDialog(this, (OnDateSetListener) this, 2012, 3, 3);
Spinner dSpinner = (Spinner) findViewById(R.id.spinner1);
xml:
<Spinner
android:id="@+id/spinner1"
android:spinnerMode="dialog"
android:prompt="@string/hint_date"
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
也许你知道如何处理它。我想选择一个日期,通过onClick调用选择器(旋转器不可能做什么?!)我也试过onclicklisteners。
答案 0 :(得分:2)
spinnerMode
属性不是您要找的。为了在用户点击DatePickerDialog
时显示Spinner
,您必须创建自定义Spinner
窗口小部件并覆盖负责显示默认设置的performClick
方法带有Spinner
值的对话框。以下是一个例子:
public class CustomSpinnerDialog extends Spinner {
// implement all the constructors
@Override
public boolean performClick() {
DatePickerDialog dDialog = new DatePickerDialog(getContext(),
new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
Toast.makeText(getContext(), "Something",
Toast.LENGTH_SHORT).show();
}
}, 2012, 3, 3);
dDialog.show();
return false;
}
}
然后,您只需在布局中使用此自定义Spinner
即可。
答案 1 :(得分:2)
更好的方法是将按钮屏蔽为Spinner样式,如在Stock Contacts Application Edit Contact屏幕中所做的那样。
<Button
android:id="@+id/date_view"
style="?android:attr/spinnerStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingLeft="12dip"
android:paddingStart="12dip" />