android - 从 timePickerDialog 获取输入

标签 android android-timepicker

我在一个项目中工作,用户在 TimePickerDialog 中输入时间。我想获取该输入并将其存储在另一个变量中并将其显示为 textView。

 public class MainActivity extends Activity {

Button b1;
TextView tv;
int hour,min;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    b1 = (Button)findViewById(R.id.b1);
    tv = (TextView)findViewById(R.id.tv1);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            TimePickerDialog tpd = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {

                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    // TODO Auto-generated method stub
                    hour = hourOfDay;
                    min = minute;
                }
            }, hour, min, false);
            tpd.show();
            tv.setText(hour + ":" + min);
        }

        });
    }


}

当我首先运行这个应用程序时,textview 显示 0:0 。我按下按钮,对话框出现我设置时间并按下完成,但 textview 没有改变,只有在我再次按下按钮后,textview 才会更改为上一个输入。我想要的是,当我在 timepickerdialog 中按完成时,textview 将显示我设置的时间。它会显示该值,但只有在我再次按下按钮后才会显示。

最佳答案

您需要在单击完成按钮时更新 TextView。现在,您的 TextView 在时间选择完成后不会更新。只需像下面这样更改您的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    b1 = (Button)findViewById(R.id.b1);
    tv = (TextView)findViewById(R.id.tv1);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            TimePickerDialog tpd = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {

                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    // TODO Auto-generated method stub
                    hour = hourOfDay;
                    min = minute;

                    //Place it here
                    tv.setText(hour + ":" + min);
                }
            }, hour, min, false);
            tpd.show();
        }

        });
    }
}

关于android - 从 timePickerDialog 获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33773165/

相关文章:

android - 如何用 EditText 中的返回键替换 "smiley"按钮?

Android timepicker 对话框不返回前面的零

不是对话框的 Android 日期/时间选择器

Android:使用 TextView 中显示的时间设置时间选择器

java - Android中如何压缩下载的图片并在需要时解压?

android - 什么可能会改变声音输出

Android Studio gradle 错误

android - 如何更改 Timepicker Style 轮?

android - Android 中用于重复事件的星期几和时间选择器

android - AudioManager - 两种方法之间的区别