请问时间如何显示??

请问时间如何显示??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public class MainActivity extends ActionBarActivity {
    private ToggleButton toggleButton;
    private RadioGroup rg;
    private RadioButton rb_w1, rb_w2, rb_w3;
    private ImageView imageView;
    private TextView Time;
    //获取时间以及更改显示时间格式
    Calendar calendar=Calendar.getInstance();
    Date now = new Date(); 
    @SuppressLint("SimpleDateFormat") SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:ms");
    String time = dateFormat.format(now);  
     
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.linear);
        toggleButton = (ToggleButton) findViewById(R.id.wifi);
        rg = (RadioGroup) findViewById(R.id.choose);
        rb_w1 = (RadioButton) findViewById(R.id.meeting);
        rb_w2 = (RadioButton) findViewById(R.id.office);
        rb_w3 = (RadioButton) findViewById(R.id.visitor);
        imageView=(ImageView) findViewById(R.id.imageView);
         
        Time=(TextView) findViewById(R.id.Time);
        Time.setText("当前时间为:"+Time);
        rg.setOnCheckedChangeListener(new RadioButtonListener());
        toggleButton.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View arg0) {
                if (toggleButton.isChecked()) {
                    Toast.makeText(MainActivity.this,
                            toggleButton.getText().toString(),
                            Toast.LENGTH_LONG).show();
                    rg.setVisibility(View.VISIBLE); 
                     
                else {
                    Toast.makeText(MainActivity.this,
                            toggleButton.getText().toString(),
                            Toast.LENGTH_LONG).show();
                    rg.setVisibility(View.GONE);
                }
 
            }
        });
         
    }
         
    class RadioButtonListener implements OnCheckedChangeListener{
 
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
             
            switch(checkedId){
            case R.id.meeting:
                imageView.setImageResource(R.drawable.meeting);
                System.out.println(findViewById(R.id.Time));
                break;
            case R.id.office:
                imageView.setImageResource(R.drawable.office);
                System.out.println(findViewById(R.id.Time));
                break;
            case R.id.visitor:
                imageView.setImageResource(R.drawable.visitor);
                System.out.println(findViewById(R.id.Time));
                break;
            }
             
        }
         
    }
}

 <TextView

            android:id="@+id/Time"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="当前时间:" />


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

额~~~给你一个提示哈,借用一下你的代码:

1
2
3
4
 case R.id.meeting:
                imageView.setImageResource(R.drawable.meeting);
                System.out.println(findViewById(R.id.Time));
break;

这是你原来的代码

现在的需求是点击的时候在界面上显示时间所以~~~你需要在界面上在加一个控件 名字叫做TextView 然后id可以叫txt_showTime,

在oncreate方法中需要对这个TextView进行初始化操作:

txt_showTime = (TextView)findViewById(R.id.txt_showTime);

然后呢,在你上面的case语句中这么写,

1
2
3
4
5
6
7
8
9
10
 case R.id.meeting:
                imageView.setImageResource(R.drawable.meeting);
                System.out.println(findViewById(R.id.Time));
                //以下代码获取当前时间
                String time="当前时间:"+(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).
                        format(Calendar.getInstance().getTime());
            //时间获取到了以后,直接将时间在textview上显示
            txt_showTime.setText(time);
                 
break;

这样就可以了~

其实还是整体逻辑思路的问题和理解的问题,

比如:System.out.println(findViewById(R.id.Time));

你写的这行代码,findViewById返回的是某一个控件的对象,但是你把这个控件的对象打印出来。这个肯定是不对的。

如果你想在控制台打印的话 ,还是应该先获取时间,然后将这个时间字符串打印出来,而不是打印一个对象,

例如:

1
2
String time="当前时间:"+(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(Calendar.getInstance().getTime());
System.out.println(time);

不知道明白了木有呢~

  • sd_单子 提问者 #1
    非常感谢!比心~~~
    2017-03-27 17:58:43
喜欢做梦的鱼 2017-03-27 12:37:39

代码贴出来看一下~

  • 提问者 sd_单子 #1
    改过问题了,请过目~~我不知道是那块调用出问题了
    2017-03-27 15:43:42
喜欢做梦的鱼 2017-03-24 21:41:32

可以通过 findViewById  方法获取 Time 控件,然后设置text属性,就可以把时间动态关联到控件上显示了~~

  • 提问者 sd_单子 #1
    在内部类对应图片里显示该如何调用?System.out.println无法显示,setText方法报错
    2017-03-27 11:47:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码