如何构建以下Android活动?

时间:2010-07-15 03:08:51

标签: android

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个字节

1 个答案:

答案 0 :(得分:2)

虽然你的问题非常笼统而且含糊不清,但我会尽力回答:

要“暂停”您的活动,有几种可能性。如果它不必对用户输入作出反应,但只是在特定时间后执行特定方法,我建议将TimerTaskTimer结合使用。有关其工作原理的说明,您可以使用this reference

要为TextView设置新值(假设新值表示要显示的新文本),您应该使用方法TextView.setText(...)。要隐藏/取消隐藏TextView,您可以使用方法setVisibility(...)。要使TextView变为白色(假设您正在谈论TextView背景),可以使用方法setBackgroundColor(...)

我希望这会对你有所帮助。如果您有任何问题,您必须向我们提供代码和更详细的问题。