android - 将 Id 从 Button 传递到 timePicker 对话框

标签 android

我有一个 timePicker 对话框,可以从不同的按钮调用它。 如何传递调用对话框的 Id?

这是相关代码:

    //Time picker
    private int pHour;
    private int pMinute;
    static final int TIME_DIALOG_ID = 0;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /** Get the current time */
        final Calendar cal = Calendar.getInstance();
        pHour = cal.get(Calendar.HOUR_OF_DAY);
        pMinute = cal.get(Calendar.MINUTE);
}

按钮的点击事件:

public void onClick(View v) {

 // Here I should pass the v.getId() to the dialog
 showDialog(TIME_DIALOG_ID);
}

@Override
protected Dialog onCreateDialog(int id) {
    switch (id) {
    case TIME_DIALOG_ID:
        return new TimePickerDialog(this,
                mTimeSetListener, pHour, pMinute, false);
    }
    return null;
}

/** Callback received when the user "picks" a time in the dialog */
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
    new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            pHour = hourOfDay;
            pMinute = minute;
            //Here I should know from which v.getId() the dialog was called
        }
    };

谢谢!

最佳答案

你必须为你想做的事情写你自己的选择器:

假设您必须为所有按钮调用同一个选择器,我建议您在 Button 上使用 switch 语句

 public void onClick(View v) {

  switch(v.getId()){

  case R.id.Button1:
       showDialog(TIME_DIALOG_ID);
       break;

  case R.id.Button2: 
       showDialog(TIME_DIALOG_ID);
       break;
  }
}

如果您希望弹出不同的Dialog,您可以使用不同的Dialog ID。

关于android - 将 Id 从 Button 传递到 timePicker 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673675/

相关文章:

java - 在Firebase和Android Studio中检索驾驶员的passengerRequest节点内的所有乘客ID(用户ID)

android - Android项目的依赖管理

java - 从字符串创建对象的正确 OOP 方法

android - Ionic 在 iOS 版本 8 上出现闪屏后崩溃

安卓 : LinearLayout with 2 buttons at the bottom

android - 使用Gradle测试时出现意外的最高水平异常

android - 数据消息与通知消息,(可折叠和不可折叠混淆)

带有 showSoftInput 的 Android 显示软键盘不起作用?

java - 语言环境 Caldroid

java - UPI交易ID是如何生成的