首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从timePickerDialog获取输入

从timePickerDialog获取输入
EN

Stack Overflow用户
提问于 2015-11-18 06:26:47
回答 2查看 350关注 0票数 1

我在一个项目中工作,在这个项目中,用户会在TimePickerDialog中输入时间。我想接受这个输入,并将它存储在另一个变量中,并将其显示为textView。

代码语言:javascript
复制
 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将显示我设置的时间。它显示了这个值,但只有在我再次按下按钮之后。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-18 06:32:56

尝尝这个

代码语言:javascript
复制
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;
                    tv.setText(hour + ":" + min);
                }
            }, hour, min, false);
            tpd.show();
         }
     });
   }
}
票数 0
EN

Stack Overflow用户

发布于 2015-11-18 06:32:10

单击done按钮时,需要更新TextView。现在,您的TextView没有得到更新后,采摘时间已经完成。只需将代码更改如下:

代码语言:javascript
复制
@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();
        }

        });
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33773165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档