【问题标题】:DatePickerDialog called by a spinner onClick微调器 onClick 调用的 DatePickerDialog
【发布时间】:2012-10-01 17:46:22
【问题描述】:

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

只有我的两个对象:

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。

【问题讨论】:

标签: android dialog datepicker spinner android-spinner


【解决方案1】:

spinnerMode 属性不是您想要的。为了在用户单击Spinner 时显示DatePickerDialog,您必须创建一个自定义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

【讨论】:

  • 嗯,我不明白...如何在我的活动中使用它?我创建了一个 Object CustomSpinner,设置了 LayoutParametrs,我怎样才能让它显示出来??
  • @user1707493 您可以像使用普通的Spinner 一样使用它。例如,在您的问题中,您在 xml 布局中声明了一个 Spinner。您可以像这样使用自定义 Spinner:&lt;com.your.package.CustomSpinnerDialog android:id="@+id/spinner1" android:prompt="@string/hint_date" android:layout_marginTop="40dp" android:layout_width="match_parent" android:layout_height="wrap_content"&gt;
【解决方案2】:

执行此操作的更好方法是将按钮屏蔽为 Spinner 样式,就像在 Stock Contacts 应用程序编辑联系人屏幕中所做的那样。

    <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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多