我是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");
}
};
}
谢谢。
答案 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");