我对Android编程有点新意,我想要的只是将一些文本发送到屏幕。此功能应该适用于打开和关闭屏幕的功能。当你打开它时,它打开时的时间戳,并在屏幕上打印1。此外,当您关闭它时,它会关闭时间戳并在屏幕上打印0。我只是“附加”到上一个时间戳有点麻烦,这意味着我想在Android的屏幕关闭和屏幕打开时不断记录。它会一直覆盖自己。这是我的尝试:
protected void onResume(){ //this is for when the screen is turned back on
Time now = new Time();
if(!ScreenReceiver.screenOn){
now.setToNow();
String lsNow = now.format("%m-%d-%Y %I:%M:%S");
LinearLayout lView = new LinearLayout(this);
myText = new TextView(this);
myText.setText(lsNow + ", 1");
lView.addView(myText);
setContentView(lView);
... //more code here
}
protected void onPause(){
Time now = new Time();
if(ScreenReceiver.screenOn){
now.setToNow();
String lsNow = now.format("%m-%d-%Y %I:%M:%S");
LinearLayout lView = new LinearLayout(this);
myText = new TextView(this);
myText.setText(lsNow + ", 0");
lView.addView(myText);
setContentView(lView);
...//more code here
}
如果有人知道解决方案,那就太棒了!谢谢!
答案 0 :(得分:0)
append()
方法可以追加。我也会制作一个共享方法:
public void logTime (boolean screen)
{
Time now = new Time();
now.setToNow();
String lsNow = now.format("%m-%d-%Y %I:%M:%S");
TextView myText = (TextView) findViewById (R.id.myText);
myText.append (" " + lsNow + (screen ? "0" : "1"));
}
然后使用ScreenReceiver.screenOn
作为参数调用。
答案 1 :(得分:0)
您的代码目前正在重置活动的整个布局,以便恢复和暂停。当您致电setContentView
时,您实际上是使用您创建的新布局交换旧布局。在资源文件夹中创建一个布局,然后在活动的onCreate
中调用setContentView
方法。之后,使用FindviewById<TextView>
获取对布局中TextView
的引用。您需要在布局文件中声明元素的ID。
为了将文本附加到控件,您必须使用当前文本,然后将新信息添加到它:textView.setText(textView.getText() + "new text")
,以便不覆盖旧数据。