Android setText()是否覆盖自身?
我对Android编程有点陌生,我想做的只是设置发送一些文本到屏幕上。这个功能应该在你打开和关闭屏幕时使用。当您打开时,屏幕上会打印一个时间戳When on和一个1。此外,当您将其关闭时,屏幕上会打印“何时关闭”的时间戳和0。我在简单地“附加”上一个时间戳时遇到了一些麻烦,这意味着我想持续记录Android屏幕何时关闭以及何时打开。它不断地覆盖自己。以下是我的尝试:Android setText()是否覆盖自身?,android,printing,settext,Android,Printing,Settext,我对Android编程有点陌生,我想做的只是设置发送一些文本到屏幕上。这个功能应该在你打开和关闭屏幕时使用。当您打开时,屏幕上会打印一个时间戳When on和一个1。此外,当您将其关闭时,屏幕上会打印“何时关闭”的时间戳和0。我在简单地“附加”上一个时间戳时遇到了一些麻烦,这意味着我想持续记录Android屏幕何时关闭以及何时打开。它不断地覆盖自己。以下是我的尝试: protected void onResume(){ //this is for when the screen is turne
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
}
如果有人知道解决方案,那就太好了!谢谢
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
作为参数调用。您的代码当前正在重置恢复和暂停时活动的整个布局。当您调用setContentView
时,实际上是在用您创建的新布局替换旧布局。在资源文件夹中创建一个布局,然后在活动的onCreate
中调用setContentView
方法。然后,使用FindviewById
在布局中获取对TextView
的引用。您需要传递在布局文件中声明的元素ID
为了向控件追加文本,您必须使用当前文本,然后向其中添加新信息:
textView.setText(textView.getText()+“new text”)
,这样旧数据就不会被覆盖。啊,这太棒了!谢谢只是一个简单的问题——TextView text=(TextView)findviewbyd(R.id.myText);,有什么意义;?在这种情况下,该变量未使用。你是说text.append(sNow+(screen?“0”“1”);?@user200081我现在注意到了这一点,我正在重写这个方法,并在myText
中省略了“my”。但是,是的。任何一种方法都有效,只要它是同一个变量,并且你的布局中有一个id为myText
的TextView
。