活动开放多久了?

时间:2014-01-26 19:07:16

标签: java android xml time android-activity

我是Android编程的新手,我正在创建一个非常简单的应用程序。 我只有一个文本视图和一个按钮,当我单击按钮时,我想在文本视图中显示一个值,该值表示活动打开的时间。

这是我的xml文件:     

    <Button
        android:id = "@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Button" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button"
        android:layout_centerHorizontal="true"
        android:text=" " />

</RelativeLayout>

这是我的java文件:

package com.diogoc.teste;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

    TextView textView;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView) findViewById(R.id.textView);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(Listener);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    private OnClickListener Listener = new OnClickListener() {
        public void onClick(View v) {
            //It's here
            textView.setText("You take");
        }
    };

}

谢谢。

2 个答案:

答案 0 :(得分:0)

onCreate中的此类内容将起作用:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /* Other stuff omitted */
    final long start= System.currentTimeMillis();
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable(){
        @Override
        public void run(){
            textView.setText(System.currentTimeMillis() - start);
            handler.postDelayed(this, 100);
        }
    }, 100);
}

run()方法中的代码将每100毫秒无限运行一次,使用自调用onCreate()以来经过的毫秒数更新textview中的文本。

答案 1 :(得分:0)

将此成员变量添加到类:

long startTime;

将此添加到onCreate() - 方法:

startTime = System.currentTimeMillis();

将此添加到onClick() - 方法:

long timeElapsedMS = System.currentTimeMillis()-startTime; //gets the time difference in milliseconds
long timeElapsedSeconds = timeElapsedMS/1000;
textView.setText("You took "+timeElapsedSeconds+" seconds");