3

我在软或谷歌上找不到任何东西!所以我需要你的帮助!我喜欢点击我的(空的)微调器,所以我会显示一个日期或时间选择器对话框。我找不到任何处理方法。这些是我现在的片段。:

只是我的两个对象:

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。

4

2 回答 2

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在你的布局中使用这个自定义。

于 2012-10-01T18:37:27.483 回答
2

更好的方法是通过在 Stock Contacts 应用程序编辑联系人屏幕中将按钮屏蔽为 Spinner 样式。

    <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" />
于 2013-11-04T07:31:06.300 回答