onCreate,MyActivity将显示五个TextView。触摸五个TextView中的一个后,它将隐藏三到四个TextView,并将一个红色和一个绿色或只为一个绿色着色。
我可以将所有内容编写到此处。但是我怎么能暂停几秒钟,然后用新值重新填充五个TextViews,取消隐藏它们并使它们全部变白?
提前致谢!
NEW EDIT NEW EDIT NEW EDIT
我在一个新项目中尝试了一个Timer,可以附加代码并使我的问题不那么模糊。
这是main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/hello"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
这是TestTimer.java
package com.somecompany.android.testtimer;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class TestTimer extends Activity {
TextView hello;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
hello = (TextView)findViewById(R.id.hello);
hello.setTextColor(Color.rgb(0,255,0));
new Reminder(5);
}
void resetAndContinue() {
Log.d("TESTTIMER", "Start resetAndContinue...");
hello.setTextColor(Color.rgb(255,255,255));
Log.d("TESTTIMER", "End resetAndContinue...");
}
class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds*1000);
}
class RemindTask extends TimerTask {
public void run() {
Log.d("TESTTIMER", "Ran TagRemindTask");
resetAndContinue();
timer.cancel(); //Terminate the timer thread
}
}
}
}
问题是Timer执行resetAndContinue并记录两个条目,但它没有将TextView颜色从绿色设置为白色并且不再记录
07-15 13:08:46.894:DEBUG / TESTTIMER(618):Ran TagRemindTask
07-15 13:08:46.894:DEBUG / TESTTIMER(618):启动resetAndContinue ......
07-15 13:08:47.264:DEBUG / dalvikvm(524):GC在156ms内释放了202个对象/ 8936个字节
07-15 13:08:52.224:DEBUG / dalvikvm(210):GC在85ms内释放了43个对象/ 2096个字节
答案 0 :(得分:2)
虽然你的问题非常笼统而且含糊不清,但我会尽力回答:
要“暂停”您的活动,有几种可能性。如果它不必对用户输入作出反应,但只是在特定时间后执行特定方法,我建议将TimerTask与Timer结合使用。有关其工作原理的说明,您可以使用this reference。
要为TextView设置新值(假设新值表示要显示的新文本),您应该使用方法TextView.setText(...)。要隐藏/取消隐藏TextView,您可以使用方法setVisibility(...)。要使TextView变为白色(假设您正在谈论TextView背景),可以使用方法setBackgroundColor(...)。
我希望这会对你有所帮助。如果您有任何问题,您必须向我们提供代码和更详细的问题。